Java Scriptengine支持语言
-
21-12-2019 - |
题
java有一个 scriptengine 系统,允许您运行/评估不同语言的陈述。
我知道javascript支持的事实,但我找不到任何其他语言来与之合作。
例如,Ruby实现了?
解决方案
..我知道javascript支持的事实,...
ecmascript ,技术上。
..但我找不到任何其他语言来与之合作。 例如,Ruby实现了?
no。ECMAScript引擎是默认情况下的唯一一个,我最后一次听到。
其他提示
此处是用于确定系统上所有语言的脚本:
import java.util.List;
import javax.script.ScriptEngineManager;
import javax.script.ScriptEngine;
import javax.script.Bindings;
import javax.script.ScriptContext;
import javax.script.ScriptEngineFactory;
public class Test {
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);
}
}
}
.
希望这有帮助。
不是scriptengine,但你仍然可以使用bsf。来自 apache commons bean脚本框架,您可以找到它的文档 here 。 -
bsf 2.x当前支持多种脚本语言:
- 使用rhino ecmascript,从Mozilla项目中)
- netrexx(在java中的IBM rexx脚本语言的扩展)
- python(使用Jython)
- tcl(使用jacl)
- xslt样式表(作为apache xml项目的Xalan和Xerces的一个组件)
此外,他们自己的BSF引擎支持以下语言:
有几种其他语言可用。例如,Jython(在Java中的Python实现)。使用其他语言的方法是将JAR文件添加到ClassPath并对右侧的引用进行引用。
对于红宝石,有jruby。请参阅以下内容: https://github.com/jruby/jruby/wiki/javaintegration
ScriptEngineManager m = new ScriptEngineManager();
ScriptEngine rubyEngine = m.getEngineByName("jruby");
. Java Scriptengine API将适用于所有JSR-223脚本语言。我之前没有找到一份记录的完整列表,但这篇文章做得非常好, 哪里可以找到可用的清单JSR-223脚本语言? 这是该帖子中的一个列表,
jsr-223脚本引擎
- awk
- beanshell
- EJS
- freemarker
- Groovy
- jaskell
- java
- javascript
- javascript(web浏览器)
- 果冻
- Jep
- jexl
- JST
- judoscript
- juel
- ognl
- pnuts
- python
- Ruby
- 计划
- 睡觉
- tcl
- 速度
- xpath
- xslt
JSR 223脚本引擎维护在其他地方
- javafx脚本
- abcl
- AppleScript
- bex脚本
- Ocaml脚本项目
- php
- php(另一个)
- python
- smalltalk
- cajuscript
- matheclipse
大多数人都有一个特殊的实施方式。例如,单独使用Python不起作用,您需要添加到类路径的Jython jar。同样的红宝石你需要JRuby。
不隶属于 StackOverflow