Компиляция файла Java с кодом из файла Java
В настоящее время я создаю персональный (возможно, публичный) Java-терминал. Я хочу создать команду, которая создаст + скомпилирует файл Java при исполнении, за исключением того, что я не слишком уверен в том, как на самом деле это сделать. Является ли это возможным? Или я просто сплю?
3 ответа
скомпилировать файл Java
Смотрите STBC. Он использует JavaCompiler
скомпилировать код в текстовой области.
Вы также можете использовать Groovy - это очень удобно, если вы просто хотите скомпилировать и запустить одну или две строки Java-кода из вашего приложения. Приложение может быть на обычном Java, причем Groovy используется только для компиляции динамически генерируемого кода. Какое бы решение вы ни выбрали, будьте осторожны, так как выполнение пользовательского ввода, поскольку код может привести к проблемам безопасности (уязвимость к атакам с использованием инъекций).
Я согласен с комментарием @eee о том, что javax.script
вероятно, очень хорошо подходит для вашего проекта, с кодом скрипта легче работать, чем с кодом Java. В прошлом я успешно использовал его для API плагинов, и я не помню, чтобы у него были какие-то проблемы с его запуском и запуском.
Большинство известных мне проектов по компиляции настоящей Java во время выполнения используют для этого компилятор Eclipse. Java 6 javac
можно получить доступ полностью программно, а также. Я никогда не использовал ни один из них сам. Эти два и некоторые другие компиляторы могут быть доступны через Commons-JCI при желании.