Где я могу найти список доступных языков сценариев JSR-223?

Мне нужен язык сценариев на основе JVM для моего приложения, и я хотел бы посмотреть, что еще есть, кроме Groovy, Ruby и Python.

Google продолжает указывать мне на мертвую страницу по адресу http://scripting.dev.java.net/

4 ответа

Решение

Это не официальный список, но вы можете начать здесь: http://en.wikipedia.org/wiki/List_of_JVM_languages

Rhino (JavaScript) по умолчанию реализован в Oracle JDK/JRE.

С помощью этого кода вы можете увидеть, какие языки сценариев доступны в вашем JDK:

import java.util.*;
import javax.script.*;

public class A {

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

        }

    }

}

Этот пример был получен здесь: http://www.oracle.com/technetwork/articles/javase/scripting-140262.html

Вы можете попробовать Lua тоже. Посмотрите здесь: как я могу вставить Луа в Java?

Старая страница находится здесь (загрузка для просмотра, неправильный тип контента установлен в ответе) http://java.net/projects/scripting/sources/svn/content/trunk/www/index.html?raw=true

Те, которые размещены на странице проекта JSR-223, можно просмотреть по адресу http://java.net/projects/scripting/sources/svn/show/trunk/engines но список таков:

Скриптовые движки JSR-223

  • AWK
  • BeanShell
  • EJS
  • FreeMarker
  • Groovy
  • Jaskell
  • Джава
  • JavaScript
  • JavaScript (веб-браузер)
  • Желе
  • СЭП
  • Jexl
  • Jst
  • JudoScript
  • Juel
  • OGNL
  • Pnuts
  • питон
  • Рубин
  • Схема
  • Спать
  • Tcl
  • Скорость
  • XPath
  • XSLT

Сценарии JSR 223, поддерживаемые в других местах

  • JavaFX Script
  • ABCL
  • AppleScript
  • Скрипт Bex
  • Скриптовый проект OCaml
  • PHP
  • PHP (еще один)
  • питон
  • Болтовня
  • CajuScript
  • MathEclipse

Ссылки на скачивание смотрите в index.html, о котором я упоминал выше. Для любого из проектов java.net просто удалите dev, чтобы scripting.dev.java.net превратился в scripting.java.net. Возможно, вам придется искать в репо для старых веб-страниц.

Одна примечательная вещь, движок JavaScript (Rhino) полностью переписан для Java 8. Новое имя - Nashorn. Для получения дополнительной информации см.: http://openjdk.java.net/projects/nashorn/

Я не знаю полного списка.

Однако стоит отметить, что вы можете использовать практически любой встраиваемый язык JVM для сценариев, если он поддерживает динамическую компиляцию / выполнение во время выполнения. Неважно, если это JSR233 или нет.

Например, я использую Clojure для сценариев (с настраиваемым DSL) в некоторых моих приложениях.

Я сам не пробовал, но думаю, что вы также можете использовать Scala: scala в качестве языка сценариев.

FWIW, мой личный выбор будет:

  • Clojure для выразительных возможностей power / DSL (если вы используете сценарии самостоятельно или с группой экспертов)
  • Groovy, если вашей главной целью является простота использования для конечных пользователей (из-за простоты и сходства с Java)

Также я нашел эту страницу: http://java-source.net/open-source/scripting-languages

они упоминают другие языки сценариев, такие как Basic, такие как JBasic, LUA, LuaJava... ePascal и многие другие

Другие вопросы по тегам