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);
        }
    }

}
.

希望这有帮助。

有几种其他语言可用。例如,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。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top