Вопрос

Я собираюсь начать разработку небольшого настольного приложения Java.Приложение — это просто движок, для которого пользователь предоставляет классы Java для выполнения работы (преобразования ввода в вывод).

Я хотел бы, чтобы пользователь предоставлял реальные классы Java в виде файлов, которые можно загружать (и перезагружать) на лету.

Для этого конкретного использования есть ли причина, по которой Java будет более громоздкой, чем Groovy или Beanshell?Я не прошу сравнивать Groovy/Beanshell и Java, поскольку их много.Скорее, я хочу знать если проще динамически загружать классы Groovy или Beanshell из файлов по сравнению с Явой.

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

Примечание:Я видел этот и этот, но я не уверен, что они ответят на мой вопрос.

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

Решение

JavaКомпилятор очень универсален, но влечет за собой небольшую потенциальную проблему с конфигурацией:В javax.tools, ToolProvider.getSystemJavaCompiler() идентифицирует класс компилятора как com.sun.tools.javac.api.JavacTool.На некоторых платформах этот класс не является частью JRE;Кажется, требуется JDK.Вот пример.

Также рассмотрите javax.скрипт, обсуждается здесь.Несколько скриптовые движки поддерживаются.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top