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

时间:2012-06-05 23:40:11

标签: compiler-construction nullpointerexception java

有问题的代码部分是:

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 \ bin”。我可能是一个菜鸟,不明白如何通过JDK而不是JRE运行程序,但无论我需要帮助。 (另外,我正在使用Eclipse,如果它有任何不同。)

3 个答案:

答案 0 :(得分:0)

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

答案 1 :(得分: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");

答案 2 :(得分:-1)

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

import javax.tools.ToolProvider;