我的应用程序需要一种基于 JVM 的脚本语言,并且想看看除了 Groovy、Ruby 和 Python 之外还有什么。
谷歌一直把我指向一个死页http://scripting.dev.java.net/
我的应用程序需要一种基于 JVM 的脚本语言,并且想看看除了 Groovy、Ruby 和 Python 之外还有什么。
谷歌一直把我指向一个死页http://scripting.dev.java.net/
这不是官方列表,但您可以从这里开始: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 中嵌入 lua?
旧页面位于此处https://web.archive.org/web/20070610234337/https://scripting.dev.java.net/
JSR-223 项目页面上托管的那些可以在https://web.archive.org/web/20140909141915/https://java.net/projects/scripting/sources/svn/show/trunk/engines浏览,但是清单是:
JSR-223 脚本引擎
JSR 223 脚本引擎在其他地方维护
对于下载链接,请查看我上面提到的 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 as scripting language
FWIW,我个人的选择是:
我也找到了这个页面:http: //java-source.net/open-source/scripting-languages
他们提到了其他脚本语言,例如称为 JBasic、LUA、LuaJava 的 Basic ...... ePascal 和许多其他