2012-03-12 128 views
4

我正在使用Eclipse,因此我的類文件存儲在項目文件夾中的「bin」中。如何設置JavaCompiler將編譯類輸出到此「bin」文件夾中?JavaCompiler - 設置已編譯的類輸出文件夾

我的代碼:

File fRun = new File("FileToCompile"); 
JavaCompiler compiler = ToolProvider.getSystemJavaCompiler(); 
StandardJavaFileManager fileManager = compiler.getStandardFileManager(null, null, null); 
Iterable<? extends JavaFileObject> compUnits = fileManager.getJavaFileObjects(fRun); 
Boolean compRes = compiler.getTask(null, fileManager, null, null, null, compUnits).call();   

if(compRes == true){ 
    System.out.println("Compilation has succeeded"); 
    ClassLoader cl = Thread.currentThread().getContextClassLoader(); 
    Class<?> compiledClass = cl.loadClass("data.testcases.TestA"); 
    cRun = compiledClass; 
}else{ 
    System.out.println("Compilation error"); 
    fileManager.close(); 
+0

需要在compiler.getTask中傳遞您的編譯器選項。該選項是-d – 2012-03-12 11:00:35

+0

這不應該是答案而不是評論,@AmitBhargava? – nwinkler 2012-03-12 11:02:32

+0

heh。認爲它不夠詳細,所以我讓它成爲評論。我也會添加一個答案。 – 2012-03-12 11:04:01

回答

8

需要通過在compiler.getTask你的編譯器選項。該選項是-d

+0

和我在哪裏添加編譯器選項? – ctekk 2012-03-12 11:09:44

+1

這將是第四個參數。現在,我還沒有嘗試過,但下面的代碼片段應該有所幫助:final Iterable options = Arrays.asList(new String [] {「-d」,});其中是您的bin目錄的絕對路徑 – 2012-03-12 11:14:06