gpt4 book ai didi

java - ToolProvider.getSystemJavaCompiler() 在 JDK 9 中返回 null

转载 作者:塔克拉玛干 更新时间:2023-11-02 19:48:33 31 4
gpt4 key购买 nike

我在 Eclipse 中的项目正在运行 WITH SYSTEM JRE 9。当我尝试将 Java 主页设置为 JDK 9 以获取系统编译器时,我得到了 null。

System.setProperty("java.home", "C:\\Program Files\\Java\\jdk-9.0.1");
System.out.println(System.getProperty("java.home")); // print C:\Program Files\Java\jdk-9.0.1
JavaCompiler compiler = ToolProvider.getSystemJavaCompiler(); // returns null

这段代码以前在 JDK 8 上运行良好(从 JRE 8 运行)

System.setProperty("java.home", "C:\\Program Files\\Java\\jdk1.8.0_152");
System.out.println(System.getProperty("java.home")); // print C:\Program Files\Java\jdk1.8.0_152
JavaCompiler compiler = ToolProvider.getSystemJavaCompiler(); // returns compiler

ToolProvider.getSystemJavaCompiler 要求的工作方式是否有任何变化?

更新:不确定它是否重要,但如果我从 JDK 9(不再需要更改为 java.home)而不是 JRE 9 运行我的项目,getSystemJavaCompiler() 工作正常。

最佳答案

相应地将 Unix 上的路径更改为 /Contents/Home 对我有用:

System.setProperty("java.home", 
"/Library/Java/JavaVirtualMachines/jdk-9.0.1.jdk/Contents/Home/");

虽然似乎根本不需要设置属性。由于以下代码行甚至独立执行也很好:

JavaCompiler compiler = ToolProvider.getSystemJavaCompiler(); 

将我系统上的 JAVA_HOME 设置为指向 JDK9 Home 目录。

关于java - ToolProvider.getSystemJavaCompiler() 在 JDK 9 中返回 null,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47646487/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com