GroovyShell - 将脚本拆分为两部分时出错(MissingMethodExceptionNoStack)

时间:2015-08-24 13:56:28

标签: java groovy groovyshell

我对Groovy完全不熟悉,所以我希望答案不明显......

假设我有一个脚本“Test.groovy”:

class A {
    def greet() {println "Hey there!"}
}

new A().greet()

我使用GroovyShell(来自Java)评估此脚本:

new GroovyShell().evaluate(new File("Test.groovy"));

我得到了预期的输出:

  

嘿那里!

现在,我从脚本中删除了最后一行,而是在对evaluate()的单独调用中对其进行评估,我得到了一个非常模糊的异常。

“Test.groovy”:

class A {
    def greet() {println "Hey there!"}
}

爪哇:

GroovyShell shell = new GroovyShell();
shell.evaluate(new File("Test.groovy"));
shell.evaluate("new A().greet()");
  

org.codehaus.groovy.runtime.metaclass.MissingMethodExceptionNoStack:没有方法签名:A.main()适用于参数类型:([Ljava.lang.String;] values:[[]]   可能的解决方案:wait(),wait(long),any(),find(),wait(long,int),each(groovy.lang.Closure)

更有趣的是,如果我按原样使用脚本并仅更改Java部分,它就能完美运行(我得到两个“嘿那里!”)

0 个答案:

没有答案