Вопрос

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

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

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

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

Спасибо

Это было полезно?

Решение

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

JRE Sun этого не делает и возвращает null при вызове ToolProvider.getSystemJavaCompiler().

Этот другой вопрос обращается к java 5.

Вот такой запись в блоге Мортена Нобеля-Йоргенсена о том, как использовать компилятор eclipse в качестве реализации javax.tools.JavaCompiler.

JavaCompiler javac = new EclipseCompiler();
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top