jav*_*eek 11 java nullpointerexception java-compiler-api
MyClass.java:
package test;
public class MyClass {
public void myMethod(){
System.out.println("My Method Called");
}
}
Run Code Online (Sandbox Code Playgroud)
列出编译MyClass.java文件的SimpleCompileTest.java.
SimpleCompileTest.java:
package test;
import javax.tools.*;
public class SimpleCompileTest {
public static void main(String[] args) {
String fileToCompile = "test" + java.io.File.separator +"MyClass.java";
JavaCompiler compiler = ToolProvider.getSystemJavaCompiler();
int compilationResult = compiler.run(null, null, null, fileToCompile);
if(compilationResult == 0){
System.out.println("Compilation is successful");
}else{
System.out.println("Compilation Failed");
}
}
}
Run Code Online (Sandbox Code Playgroud)
我正在执行SimpleCompileTest类并获得NullPointerException.ToolProvider.getSystemJavaCompiler()返回null.有人能告诉我代码有什么问题
ras*_*hid 17
我得到了同样的错误.也许我来不及回答这个问题,但我分享了自己的经验,这可能有助于其他人在未来面对同样的问题.我正在使用Compile Java Files At Runtime的源代码.
我java.lang.NullPointerException提到了它.我打印出Java主目录System.out.println(System.getProperty("java.home"));,并注意到我的Eclipse指向" C:\Program Files\Java\jre7",即使我改变了我的首选项以使用JDK1.7而不是JRE1.7.
我通过设置系统属性强制使用JDK1.7找到了一种解决方法:
System.setProperty("java.home", "C:\\Program Files\\Java\\jdk1.7.0_02");
Run Code Online (Sandbox Code Playgroud)
然后我编译了我的程序,没有得到任何NullPointerException.
| 归档时间: |
|
| 查看次数: |
12722 次 |
| 最近记录: |