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) 个答案