Исключение нулевого указателя при использовании Компилятора Java API

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 () возвращает пустой указатель. Может кто-то говорить мне что не так с кодом

11
задан Paŭlo Ebermann 18 October 2011 в 14:35
поделиться

2 ответа

Я подозреваю, что вы столкнулись с этой проблемой - запуском кода с JRE вместо JDK.

Когда вы запускаете SimpleCompileTest , попробуйте явно указать версию java.exe, которую вы используете, как версию в вашем каталоге JDK.

16
ответ дан 3 December 2019 в 02:01
поделиться

Возможно, у вас установлена ​​JRE вместо JDK. http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=6477844

1
ответ дан 3 December 2019 в 02:01
поделиться
Другие вопросы по тегам:

Похожие вопросы: