2010-03-01 16 views

risposta

24

Beh, questo sembra abbastanza evidente, così mi può mancare qualcosa

javac *.java 

(con i riferimenti appropriati biblioteca ecc)

O forse:

javac -d bin *.java 

per creare il javac giusta struttura di directory per l'output.

Stavi cercando qualcosa di più sofisticato? In tal caso, potresti fornire maggiori dettagli (e anche su quale piattaforma ti trovi)?

+0

grazie, funziona! – alex

+0

E per quanto riguarda tutti i file java in tutte le sottodirectory e le directory decenti? – Tom

+0

@Tom: Trova che dipenderebbe dal sistema operativo. È facile su Unix, usando find. Più difficile su Windows. –

3

Ecco un frammento di codice che uso per costruire un intero progetto in cui, come al solito, i file di origine sono in una gerarchia di nidificazione e ci sono molti file .jar che devono andare nel classpath (richiede utility UNIX):

CLASSPATH= 
for x in $(find | grep jar$); do CLASSPATH="$CLASSPATH:$x"; done 
SRC=$(find | grep java$) 
javac -cp "$CLASSPATH" $SRC 
9

un altro modo l'utilizzo di "trovare" in UNIX è descritto qui:

http://stas-blogspot.blogspot.com/2010/01/compile-recursively-with-javac.html

I due comandi seguenti saranno compilare tutti i file .java contenuti all'interno della directory ./src e la sua sub directory:

find ./src -name *.java > sources_list.txt 
javac -classpath "${CLASSPATH}" @sources_list.txt 

First, find genera sources_list.txt, un file che contiene i percorsi dei file sorgente Java. Successivamente, javac compila tutte queste origini utilizzando la sintassi @sources_list.txt.

+0

Considera di migliorare il tuo post poiché la tua risposta è essenzialmente un link. Vedi: [Le risposte contengono solo collegamenti altrove "buone risposte"?] (Http://meta.stackexchange.com/q/8231/156620) e [Perché il collegamento è errato?] (Http: //meta.stackexchange .com/q/7515/156620) –

+2

Soluzione piacevole. Si salta il file temporaneo usando/dev/stdin. vale a dire. 'find ./src -name * .java | javac -classpath "$ {CLASSPATH}" @/dev/stdin' – Dunes

Problemi correlati