JavaCompiler 在“ToolProvider.getSystemJavaCompiler()”上给出 NullPointerException。我很确定我已经正确设置了 JDK?

问题描述 投票:0回答:3

有问题的代码部分是:

String fileToCompile = "C:/Users/Jeff/Documents/Test/Compiler 6/examplejavafile.java";//Absolute path
JavaCompiler compiler = ToolProvider.getSystemJavaCompiler();
FileOutputStream errorStream = new FileOutputStream("Errors.txt");
int compilationResult = compiler.run(null, null, errorStream, "-verbose", fileToCompile);
if(compilationResult == 0){
    System.out.println("Compilation is successful");
}else{
    System.out.println("Compilation Failed");
}

当我运行这部分代码时,它给了我 NPE:

JavaCompiler compiler = ToolProvider.getSystemJavaCompiler();

现在我被告知这是环境中的错误,但我安装了 JDK 并且我的 CLASSPATH 变量设置为“C:\Program Files\Java\jdk1.7.0_04 in”。 我可能是个菜鸟,不明白如何通过 JDK 而不是 JRE 运行程序,但无论如何我需要帮助。 (另外,我正在使用 Eclipse,如果有什么不同的话。)

java nullpointerexception java-compiler-api
3个回答
0
投票

查找项目的运行配置(在“运行”菜单下)。在 JRE 下应该指定项目执行环境正在使用“JavaSE-1.6”(jsk1.6.20_32)或类似的环境。


0
投票

ToolProvider.getSystemJavaCompiler() 不可用。

类路径中是否缺少tools.jar?

Set class path to the tools.jar
文件可以在 jdk\jre 目录中找到。

System.setProperty("java.home", "C:\\Program Files\\Java\\jdk1.7.0_02");


-1
投票

您需要导入 ToolProvider,因为它尚未定义,除非您只是没有包含该信息。

import javax.tools.ToolProvider;
© www.soinside.com 2019 - 2024. All rights reserved.