Скомпилируйте другой файл Java из файла Java - PullRequest
2 голосов
/ 03 марта 2011

Просто из любопытства.Можем ли мы скомпилировать и запустить файл Java из другой программы Java?Если да, можете ли вы отправить ссылку на этот источник знаний?

Ответы [ 7 ]

1 голос
/ 03 марта 2011

Взгляните на Java Compiler Api и этот маленький пример.

1 голос
/ 03 марта 2011

Вы можете использовать javac (необходим JDK):
http://www.javaworld.com/javatips/jw-javatip131.html

1 голос
/ 03 марта 2011

Да, вы можете, но вам нужен компилятор Java, а не только среда выполнения Java.Сначала вы генерируете исходный код, сохраняете его, а затем используете динамическую загрузку классов (учебное пособие http://tutorials.jenkov.com/java-reflection/dynamic-class-loading-reloading.html)

1 голос
/ 03 марта 2011

Если вы используете Java 6, лучший способ сделать это - через интерфейс javax.tools.JavaCompiler.

Если вы используете более старую версию Java, вы должны вызвать javac напрямую, используя Runtime.exec(), затем загрузить данные класса с помощью подкласса ClassLoader и переопределения findClass.

1 голос
/ 03 марта 2011

Не прочитал полностью, но, может быть, это поможет.

1 голос
/ 03 марта 2011

Если у вас уже есть исходный код Java в файле, вы можете просто вызвать компилятор Java.Начиная с версии 1.6 компилятор java встроен в библиотеки JVM.

Интерфейс описан здесь.

0 голосов
/ 03 марта 2011

Это можно сделать, вызвав приглашение cmd или воспользовавшись классом Main из кода Java.

Я не знаю, хорошо помню, как это, но я сделал это давным-давно.

...