Поддерживаемые языки Java ScriptEngine
-
21-12-2019 - |
Вопрос
Java имеет Разработка сценариев система, которая позволяет вам запускать / оценивать инструкции на другом языке.
Я точно знаю, что JavaScript поддерживается, но я не смог найти никаких других языков для работы с ним.
Реализован ли, например, Ruby?
Решение
.. Я знаю, что JavaScript поддерживается, ...
Ecmascript , технически.
.. Но я не мог найти другие языки для работы с ним. Это, например, Ruby реализован?
нет.Двигатель ECMASSPRICT является единственным включенным по умолчанию, в последний раз я слышал.
Другие советы
Вот скрипт, чтобы определить все языки в вашей системе:
import java.util.List;
import javax.script.ScriptEngineManager;
import javax.script.ScriptEngine;
import javax.script.Bindings;
import javax.script.ScriptContext;
import javax.script.ScriptEngineFactory;
public class Test {
public static void main(String[] args)
{
ScriptEngineManager mgr = new ScriptEngineManager();
List<ScriptEngineFactory> factories = mgr.getEngineFactories();
for (ScriptEngineFactory factory : factories)
{
System.out.println("ScriptEngineFactory Info");
String engName = factory.getEngineName();
String engVersion = factory.getEngineVersion();
String langName = factory.getLanguageName();
String langVersion = factory.getLanguageVersion();
System.out.printf("\tScript Engine: %s (%s)\n", engName, engVersion);
List<String> engNames = factory.getNames();
for (String name : engNames)
{
System.out.printf("\tEngine Alias: %s\n", name);
}
System.out.printf("\tLanguage: %s (%s)\n", langName, langVersion);
}
}
}
.
Надеюсь, это поможет.
не в scriptengine, но вы все равно можете использовать BSF. Из apache Commons beans Scripting Framework вы можете найти документацию здесь . -
BSF 2.x поддерживает несколько языков сценариев в настоящее время:
- .
- javaScript (используя ungo ecmascript, из проекта Mozilla)
- netrexx (расширение языка сценариев IBM Rexx в Java)
- Commons Jexl
- Python (используя Jython)
- tcl (с помощью jacl)
- XSLT Stylesheates (в качестве компонента Apache XML проекта Xalan и Xerces)
Кроме того, следующие языки поддерживаются своими собственными двигателями BSF:
Есть несколько других доступных языков.Например, Jython (внедрение Python в Java).Способ использования других языков - добавление файла JAR в ClassPath и со ссылкой на правильное имя.
для Ruby, есть JRuby.См. Ниже следующее: https://github.com/jruby/jruby/wiki/javaintration
ScriptEngineManager m = new ScriptEngineManager();
ScriptEngine rubyEngine = m.getEngineByName("jruby");
. Java ScriptEngine API будет работать со всеми скриптовыми языками JSR-223.Я раньше не находил хорошо документированного полного списка из них, но этот пост делает довольно хорошую работу, Где я могу найти список доступных языков сценариев JSR-223? Вот один список из этого поста,
Скриптовые движки JSR-223
- AWK ( АВК )
- Бобовая скорлупа
- ejs
- Бесплатный маркер
- Заводной
- Джаскелл
- Java
- JavaScript
- JavaScript (веб-браузер)
- Желе
- ДЖЕП
- Jexl
- jst
- Юдоскрипт
- ДЖУЭЛ
- ВНЛ
- Пнутсы
- Питон
- Рубин
- Схема
- Спать
- Tcl
- Скорость
- XPath
- XSLT
Движки сценариев JSR 223, поддерживаемые в других местах
- Скрипт JavaFX
- ABCL
- Эпплскрипт
- Скрипт Bex
- Проект создания сценариев OCaml
- PHP
- PHP (еще один)
- Питон
- Небольшая беседа
- Каджускрипт
- Математический анализ
У большинства из них есть специальная реализация для того, чтобы это работало.Например, один python работать не будет, вам нужно добавить Jython jar в путь к классу.То же самое для Ruby, вам понадобится JRuby.