有问题的代码部分是:
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,如果它有任何不同。)
答案 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;