对于JDK版本,JavaCompiler始终为null> 1.8.0

时间:2018-04-07 20:23:10

标签: java

我使用以下内容获取JavaCompiler

System.setProperty("java.home", "/Library/Java/JavaVirtualMachines/jdk-11.jdk/Contents/Home");
javax.tools.JavaCompiler compiler = ToolProvider.getSystemJavaCompiler();

我试过这个:

  

jdk1.8.0_144.jdk

     

jdk1.8.0_162.jdk

     

JDK-9.0.4.jdk

     

JDK-10.jdk

     

JDK-11.jdk

对于1.8.0,编译器永远不会工作,因为缺少以下文件: /Library/Java/JavaVirtualMachines/jdk1.8.0_162.jdk/Contents/Home/lib/currency.data

对于1.8.0之后的每个JDK,编译器始终为空。

我也只在tools.jar中找到1.8.0

有没有人知道让JavaCompiler工作的方法,无论idk是什么?

1 个答案:

答案 0 :(得分:2)

确保您的module-info.java文件需要jdk.compiler模块:

module myModule {
    requires jdk.compiler;
}

根据documentation for getSystemJavaCompiler

  

此实现返回jdk.compiler提供的编译器   模块是否可用,否则为null

相关问题