2011-12-12 68 views

回答

1

您是否考慮過使用Ant?它使這種事情變得更簡單。請參閱:http://ant.apache.org/manual/Tasks/javac.html#srcdirnote

您只需將它指向源代碼樹的頂層,然後您可以選擇性地排除任何您不想編譯的東西。如果需要,你也可以變得更加複雜,但是它可以處理最常見的需求。

2

只需使用通配符:

javac src\com\mq\*.java 
+0

這不會直接適用於多個軟件包。 –

-1

使用cd命令轉至包含源文件的目錄。然後發出命令
的javac *的.java

+1

如果使用多個軟件包,這不是一個好主意。 –

+0

那麼我該如何編譯這種情況? – JohnC

+0

看看其他答案之一,其中大多數工作。 –

0

簡短的回答:沒有

較長的答案:也許
javac命令將編譯所有你列出在命令行上的文件。如果使用通配符,可以在javac命令行的src樹中創建所有文件的列表,它將編譯所有這些文件。

在UNIX中,你可以做這樣的事情:

find src -type f -name "*.java" -print | xargs javac 

一個答案,其中的這個問題是一個重複(Java: How can I compile an entire directory structure of code ?從芯片麥考密克評論)的問題表明,使用-exec一個查找參數。對於大量的.java文件,這種技術更好。對於少量的.java文件,我相信我所展示的與使用-exec參數的技術實際上是一樣的。

0

「正確的方法」要做到這一點將是使用像Ant或Maven或IDE這樣的構建工具,它會自動爲您執行此操作。

例如,在Ant中,你會在你的編譯目標使用此任務:

<javac srcdir="src" 
     encoding="UTF-8" 
     destdir="classes"> 
</javac> 
3

可以使用@args技術,如javac documentation定義。它是一個包含要編譯的類的路徑的文件。

如果使用在Linux/Unix系統中,可以很容易地創建一個這樣的文件:

find . -iname *.java > files.txt 
javac @files.txt 

它的工作原理遞歸,只需啓動它在你的源目錄的根目錄。