有问题的代码部分是:
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,如果有什么不同的话。)
查找项目的运行配置(在“运行”菜单下)。在 JRE 下应该指定项目执行环境正在使用“JavaSE-1.6”(jsk1.6.20_32)或类似的环境。
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");
您需要导入 ToolProvider,因为它尚未定义,除非您只是没有包含该信息。
import javax.tools.ToolProvider;