2009-11-11 3 views
6

Я хочу использовать JavaCompiler для динамического создания некоторых классов.Зависит ли javax.tools от JDK?

Я нашел исходный код пакета javax.tools, но его реализация отсутствует; некоторые сообщения в Интернете говорят, что это зависит от tools.jar, я не уверен tools.jar ассоциируется с JRE.

Итак, могу ли я запустить программу в среде JRE без установленной JDK?

Другой вопрос, какова деталь реализации JavaCompiler, создается ли новый процесс для вызова команды javac?

благодаря

ответ

8

потребность JRE, включив в него интерфейсы и классы в этом пакете, но не нужно, чтобы обеспечить реализацию.

Sun JRE нет, и возвращает null от звонка ToolProvider.getSystemJavaCompiler().

This other question адреса Java 5.

Вот blog post by Morten Nobel-Jørgensen о том, как использовать компилятор затмения как реализация javax.tools.JavaCompiler.

JavaCompiler javac = new EclipseCompiler(); 
+0

Благодарю вас, я уже закончил кодирование, но если getSystemJavaCompiler() возвращает null, программа завершится с ошибкой. поэтому мне нужно его избежать – Brodie

+0

Ссылка на сообщение в блоге мертва, обновленная ссылка [здесь] (http://blog.nobel-joergensen.com/2008/07/16/using-eclipse-compiler-to-create- dynamic-java-objects-2 /) – prunge

+0

@prunge спасибо. –

Смежные вопросы