有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java工具提供者。getSystemJavaCompiler()在JDK 9中返回null

我在Eclipse中的项目使用系统JRE 9运行。当我试图将Java home设置为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()可以正常工作


共 (0) 个答案