2011-04-27 56 views
0

使用java程序,我需要編譯一個包含.java文件組的包,編譯後我需要將.class文件移動到單獨的文件夾。使用JavaCompiler編譯包

代替使用ProcessBuilder類從命令行執行Java編譯,我決定使用JavaCompiler。我是JavaCompiler的新手,我成功地第一次嘗試編譯一個.java文件。但我不知道如何設置類路徑(-classpath),目標文件夾(-d)以及用於軟件包級編譯的.java文件列表。

任何人都可以告訴我如何設置上述選項?

+2

你也可以用[ANT](http://ant.apache.org/)要做到這一點有點任務。 – 2011-04-27 05:56:47

回答

1

正如Harry Joy所建議的那樣,您可以使用ANT。他可能的意思是不從命令行分別使用build.xml文件,而是直接從你的java程序中使用它。 通過這種方式,您將可以訪問您擁有的'fileset/exclude/include ...'功能,並節省大量編碼。

例,僞代碼(未測試,甚至可能不編譯,就像提示):

Project p = new Project(); 
p.init(); 
p.addBuildListener(new SimpleBuildListener()); 
p.setBaseDir(new File(".").getAbsoluteFile()); 

Javac task = (Javac) p.createTask("javac"); 
task.srcdir(srcDirPath); 

// Filsets can be built this way 
FileSet set = new FileSet(); 
set.setDir(srcDirPath); 
set.setIncludes("**/*.java"); 

task.addFileset(set); 
+0

太棒了!它完美的作品! – 2011-04-27 07:37:28

+0

太棒了,很高興聽到這個消息。 :) – 2011-04-27 11:04:55