MyClass.java:
package test;
public class MyClass {
public void myMethod(){
System.out.println("My Method Called");
}
}
Список для SimpleCompileTest.java, который компилирует файл MyClass.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");
}
}
}
Я выполняю класс SimpleCompileTest и получаю NullPointerException. ToolProvider.getSystemJavaCompiler () возвращает пустой указатель. Может кто-то говорить мне что не так с кодом
Я подозреваю, что вы столкнулись с этой проблемой - запуском кода с JRE вместо JDK.
Когда вы запускаете SimpleCompileTest
, попробуйте явно указать версию java.exe, которую вы используете, как версию в вашем каталоге JDK.
Возможно, у вас установлена JRE вместо JDK. http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=6477844