2010-03-01 5 views

Antwort

24

Nun scheint dies ziemlich offensichtlich, so kann ich etwas

javac *.java 

(mit entsprechender Bibliothek Referenzen, usw.)

Oder vielleicht fehlen:

javac -d bin *.java 

zu javac erstellen die richtige Verzeichnisstruktur für die Ausgabe.

Sie suchen etwas anspruchsvoller? Wenn ja, könnten Sie mehr Details angeben (und auch auf welcher Plattform Sie arbeiten)?

+0

danke, es funktioniert! – alex

+0

Wie sieht es mit allen Java-Dateien in allen untergeordneten und untergeordneten Verzeichnissen aus? – Tom

+0

@Tom: Finden Sie, dass das vom Betriebssystem abhängen würde. Unter Unix ist es kinderleicht. Schwieriger unter Windows. –

3

Hier ist ein Code-Fragment ist, das ich benutze ein ganzes Projekt, bei dem, wie üblich zu bauen, Quelldateien in einer tief verschachtelten Hierarchie sind und es gibt viele .jar-Dateien, die in den Classpath gehen muss (erfordert UNIX-Dienstprogramme):

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

Noch ein anderer Weg „finden“ auf UNIX ist hier beschrieben:

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

die folgenden zwei Befehle werden alle .java-Dateien im Verzeichnis ./src und seine Unter enthalten kompilieren Verzeichnisse:

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

Zuerst find erzeugt sources_list.txt, eine Datei, die die Pfade zu den Java-Quelldateien enthält. Als nächstes kompiliert javac alle diese Quellen mit der Syntax @sources_list.txt.

+0

Erwägen Sie, Ihren Post zu verbessern, da Ihre Antwort im Wesentlichen ein Link ist. Siehe: [Sind Antworten, die nur Links enthalten, wirklich "gute Antworten"?] (Http://meta.stackexchange.com/q/8231/156620) und [Warum wird verlinkt?] (Http: //meta.stackexchange .com/q/7515/156620) –

+2

Schöne Lösung. Sie überspringen die temporäre Datei jedoch mit/dev/stdin. dh. 'finde ./src -name * .java | javac -classpath "$ {CLASSPATH}" @/dev/stdin' – Dunes