我在哪里可以找到可用的JSR-223脚本语言列表?

时间:2012-08-07 02:07:08

标签: java scripting jsr223

我的应用程序需要一个基于JVM的脚本语言,除了Groovy,Ruby和Python之外,我还想看看还有什么。

Google一直指着http://scripting.dev.java.net/

的死页

4 个答案:

答案 0 :(得分:26)

这不是官方列表,但您可以从这里开始: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。看看这里:how can I embed lua in java?

答案 1 :(得分:24)

旧页面位于https://web.archive.org/web/20070610234337/https://scripting.dev.java.net/

可以在https://web.archive.org/web/20140909141915/https://java.net/projects/scripting/sources/svn/show/trunk/engines浏览JSR-223项目页面上托管的那些,但列表是:

JSR-223脚本引擎

  • AWK
  • BeanShell的
  • EJS
  • FreeMarker的
  • Groovy的
  • Jaskell
  • 爪哇
  • 的JavaScript
  • JavaScript(网络浏览器)
  • 果冻
  • JEP
  • JEXL
  • JS​​T
  • JudoScript
  • JUEL
  • OGNL
  • PNUTS
  • 的Python
  • 红宝石
  • 方案
  • 睡眠
  • 的Tcl
  • 速度
  • 的XPath
  • XSLT

在其他地方维护的JSR 223脚本引擎

  • JavaFX Script
  • ABCL
  • 的AppleScript
  • Bex脚本
  • OCaml脚本项目
  • PHP
  • PHP(另一个)
  • 的Python
  • Smalltalk中
  • CajuScript
  • MathEclipse

对于下载链接,请查看我在上面提到的index.html。对于任何java.net项目,只需删除dev so scripting.dev.java.net即成为scripting.java.net。您可能必须浏览旧网页的回购。

值得注意的是,JavaScript引擎(Rhino)正在为Java 8完全重写。新名称是Nashorn。有关详情,请参阅:http://openjdk.java.net/projects/nashorn/

答案 2 :(得分:2)

我不知道一份全面的清单。

但值得指出的是,只要支持动态编译/执行时,您就可以使用几乎任何可嵌入的JVM语言进行脚本编写。如果是JSR233则无关紧要。

例如,我在一些应用程序中使用Clojure编写脚本(使用自定义DSL)。

我自己没试过,但我认为你也可以使用Scala:scala as scripting language

FWIW,我个人的选择是:

  • Clojure 用于表现力/ DSL功能(如果您自己或使用专家团队使用脚本功能)
  • Groovy ,如果您的主要目标是为最终用户提供易用性(因为与Java的简单性和相似性)

答案 3 :(得分:1)

我也找到了这个页面:http://java-source.net/open-source/scripting-languages

他们提到其他脚本语言,  像一个名为JBasic,LUA,LuaJava ...... ePascal和其他许多

的Basic