java - groovy 脚本中使用 java 的 Hello World 示例给出了空指针

标签 java groovy javax.script

我尝试运行以下命令:

import javax.script.*;

public class Main {

    public static void main(String[] args) throws Exception {
        ScriptEngineManager factory = new ScriptEngineManager();
        ScriptEngine engine = factory.getEngineByName("groovy");

        System.out.println(engine.eval("(1..10).sum()"));
  }
}

我从 http://groovy.codehaus.org/JSR+223+Scripting+with+Groovy 中提取的

但我在最后一行得到一个 NullPointerException 。 我安装了 Java 7u25。 我还安装了 Groovy 2.2.1。 我从 Eclipse Kepler 运行它。

使用“Javascript”进行类似的 javax 脚本测试效果很好。 我是否缺少一些步骤来使其与 groovy 一起工作?

谢谢,塔拉

最佳答案

确保 Groovy jar 在上述代码之前位于类路径中。

运行:

java -cp .:~/.gvm/groovy/2.2.1/lib/* Main

显示您描述的错误,但正在运行:

java -cp ~/.gvm/groovy/2.2.1/lib/*:. Main

显示输出:

55

关于java - groovy 脚本中使用 java 的 Hello World 示例给出了空指针,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21242880/

相关文章:

java - Groovy ASTBuilder 多线程性能不佳

java - 如何使用 jdk 调用具有 Jqueries 的 javascript 1.6's javax.script API' s/Rhino Api's

java - 在 Java Swing 中定位标签

java - 这是对单例的适当使用吗?

java - Apache POI : Create a cell with type number, 但为空

java - 在 javax.script 中加载 javascript 库?

javax.script 将 Java 方法传递给 javascript 以用作回调

java - Spring Boot RESTful API 的各层设计及其实体映射

servlets - Groovy - 如何延迟 Groovlet 修改重新编译检查

java - Groovy 沙箱和 Java : execute Groovy script