2013-09-29 2 views
1

Я пытаюсь скомпилировать и загрузить класс java с помощью отражения. Мой код отлично работает без каких-либо исключений, если я использую JDK как стандартную виртуальную машину. но тот же код бросает исключение Null Pointer на ToolProvider.getSystemJavaCompiler(), когда я использую JRE как стандартную виртуальную машину.Возможно ли создать экземпляр Java-компилятора с использованием JRE в качестве стандартной виртуальной машины?

Я не могу иметь JDK в своем классе. Итак, есть ли у нас какой-либо вариант для компиляции java-кода с использованием JRE в качестве стандартной VM? Может кто-нибудь, пожалуйста, помогите мне об этом? Заранее спасибо.

ответ

0

API-интерфейс java-compiler работает только в том случае, если присутствует компилятор. Компилятор присутствует, когда вы используете JDK, но не (обычно) при использовании JRE.

Вы намеревались использовать специальный компилятор, отличающийся от того, который предоставлен в JDK? Похоже, есть способ подключить сторонние компиляторы к JRE.

http://docs.oracle.com/javase/7/docs/api/javax/tools/package-summary.html