Java: встраивание двигателей сценариев в приложение: JSR 223 (Scriptengine) по -прежнему хорошим решением?
-
27-10-2019 - |
Вопрос
Я хочу использовать один или много языков сценариев в моем приложении Java.
Из Сайт Jruby Я обнаружил, что есть 3 способа:
- Использование Java 6 (с помощью JSR 223: Сценарий)
- Встроение в рамку сценариев бобов (BSF)
- Непосредственно звонить в $ your_scripting_engine $ apis
Поскольку мне нужно поддерживать более 1 двигателя сценариев, я не думаю, что вариант 3 будет достаточно хорош.
При поиске решения 1. JSR 223: Сценарий, я начинаю искать архив ZIP, содержащий все интеграцию двигателя скрипта
Download and unzip the collection of jars from the documents and files section of the site (jsr223-engines.tar.gz or jsr223-engines.zip).
Но этот файл нигде не в сети (раздел Dowload Проект дома пустой. Если я хочу, я смогу загрузить источники и создать мою необходимую интеграцию Enngines. Код источников выглядит старым (2+ года для того, что я видел)
JSR 223 все еще жив и хорошее решение для выбора? Если нет, является ли структура сценария бобов хорошей альтернативой? У этого последнего есть очень плохая страница документации, и поддерживается только несколько языков сценариев (но она поддерживает большую часть языка, который я хочу иметь) ...
Решение
Я встроил Rhino в песочнице в пару приложений и обнаружил, что гораздо проще просто работать напрямую с кодом носорога.
Если вы не хотите встроить несколько разных языков или хотите развернуть на виртуальных машинах, которые уже имеют на месте JSR 223 банок, то я не думаю, что вы получите большую пользу от дополнительного уровня абстракции.
Я бы настоятельно рекомендовал, что вы принимаете во внимание простоту песочницы при выборе языка для встраивания.