2012-02-26 3 views
0

В настоящее время я создаю персональный (возможно, открытый) java-терминал. Я хочу создать команду, которая будет создавать + компилировать Java-файл при выполнении, за исключением того, что я не слишком уверен в том, как это сделать на самом деле. Является ли это возможным? Или я просто мечтаю?Составление файла Java с кодом из файла Java

+0

Проверьте скрипты Java ** javax.script ** технология; например: http://java.sun.com/developer/technicalArticles/J2SE/Desktop/scripting/ – ecle

ответ

0

Я согласен с комментарием @ eee, что javax.script, вероятно, очень подходит для вашего проекта, код сценария легче справиться с чем-то Java-кодом. Я успешно использовал его в прошлом для API плагинов, я не помню, чтобы у него возникли проблемы с его запуском и запуском.

Большинство проектов, которые я знаю об этой компиляции реальной Java во время выполнения, используют Eclipse compiler. К Java 6 javac можно получить доступ к программному обеспечению. Я никогда не использовал ни один из них сам. Доступ к этим двум и некоторым другим компиляторам можно получить через Commons-JCI.

+0

Действительно ли необходимо узнать все это? Сейчас я не ищу ничего продвинутого, поскольку я просто изучаю его основы. Как только у меня все будет нормально, я обновлю весь свой код, сделав его безопасным. –

+0

Нет необходимости изучать * все это, просто выбрать что-нибудь и пойти с этим. Если вы на Java 7, то ответ Эндрю Томпсона, вероятно, будет полезен. – Barend

1

Вы также можете использовать Groovy - это очень удобно, если вы просто хотите скомпилировать и запустить строку или два кода Java из своего приложения. Приложение может быть в обычной Java, а Groovy используется только для компиляции динамически сгенерированного кода. Какое бы решение вы ни выбрали, будьте осторожны, поскольку выполнение ввода пользователем, поскольку код может привести к проблемам безопасности (уязвимость для инъекционных атак).

+0

Это проблема, потому что я хочу, чтобы часть кода составляла полный файл Java. –

+0

В этом случае проверьте ответ Эндрю Томпсона. Вы также можете попытаться использовать [JavaCompiler class] (http://docs.oracle.com/javase/6/docs/api/javax/tools/JavaCompiler.html) напрямую. Даже вызов исполняемого файла javac в каком-то временном файле, где вы бы поместили источники, будет работать, но он не такой элегантный и портативный, как другие люди, которые предлагали другие. –

1

скомпилировать файл Java

STBC См. Он использует команду JavaCompiler для компиляции кода в текстовой области.

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