【问题标题】:JavaCompiler - set the compiled class output folderJavaCompiler - 设置编译后的类输出文件夹
【发布时间】:2023-03-12 19:51:01
【问题描述】:

我使用的是 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();

【问题讨论】:

  • 需要在 compiler.getTask 中传递你的编译器选项。选项是 -d
  • 这不应该是答案而不是评论,@AmitBhargava?
  • 嘿。觉得写的不够详细,就给个评论吧。我也会添加一个答案。

标签: java eclipse class compiler-construction


【解决方案1】:

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

【讨论】:

  • 在哪里添加编译器选项?
  • 这将是第四个参数。现在,我还没有尝试过,但是下面的代码片段应该会有所帮助: final Iterable options = Arrays.asList( new String[] { "-d", } );其中 是您的 bin 目录的绝对路径
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-10-10
  • 2016-09-05
  • 2020-10-05
相关资源
最近更新 更多