0

有问题的代码部分是:

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,如果它有任何不同的话。)

4

3 回答 3

0

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

于 2012-06-05T23:58:23.297 回答
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");

于 2013-10-07T20:20:48.287 回答
-1

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

import javax.tools.ToolProvider;
于 2012-06-05T23:42:12.570 回答