Где я могу найти список доступных языков сценариев 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 и многие другие