JavaCompiler - 设置编译的类输出文件夹

cte*_*ekk 4 java eclipse compiler-construction class

我正在使用Eclipse,因此我的类文件存储在项目文件夹中的" bin "中.如何设置JavaCompiler以将编译的类输出到此" bin "文件夹中?

我的代码:

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();
Run Code Online (Sandbox Code Playgroud)

Che*_*min 10

需要在compiler.getTask中传递编译器选项.选项是-d

  • 这是第四个参数。现在,我还没有尝试过这个,但以下代码片段应该有所帮助: Final Iterable&lt;String&gt; options = Arrays.asList( new String[] { "-d", &lt;path&gt;} ); 其中 &lt;path&gt; 是 bin 目录的绝对路径 (2认同)