我的应用程序需要一个基于JVM的脚本语言,除了Groovy,Ruby和Python之外,我还想看看还有什么。
Google一直指着http://scripting.dev.java.net/
的死页答案 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脚本引擎
在其他地方维护的JSR 223脚本引擎
对于下载链接,请查看我在上面提到的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,我个人的选择是:
答案 3 :(得分:1)
我也找到了这个页面:http://java-source.net/open-source/scripting-languages
他们提到其他脚本语言, 像一个名为JBasic,LUA,LuaJava ...... ePascal和其他许多
的Basic