Вопрос

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);
        }
    }

}
.

Надеюсь, это поможет.

Есть несколько других доступных языков.Например, 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.

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