2012-02-06 33 views
1

我正在加载Groovy脚本的Java项目。除了引用其他常规脚本的Groovy脚本(在本例中为实用程序类)之外,一切都按预期工作。每当包含所述实用程序类的脚本执行时,插件加载程序会抛出一个异常“groovy.lang.MissingPropertyException:没有这样的属性:Util. ​​在Java中嵌入groovy,groovy.lang.MissingPropertyException:没有这样的属性:

在我怀疑Java代码有问题之前,我想先了解Groovy如何“发现”其他类如果我在eclipse中运行这个项目,并且包含所有这些groovy脚本的整个项目目录都在类路径中,那么所有groovy脚本都应该能够彼此“查找”吗?

或任何其他想法?

+5

我们可能需要看到你用来执行groovy的代码 – 2012-02-06 19:28:21

回答

1

Groovy在脚本和类之间有区别如果Groovy文件包含一些类定义之外的代码,那么它是考虑一个脚本,它被编译成一个位于默认包中的类(不管在package声明中设置了什么)。

我不知道你怎么称呼Groovy脚本,但如果你使用GroovyShell类这一点,那么GroovyShell有一个构造函数与ClassLoader类型的参数,你可以通过你当前的类加载器到或您的自定义类加载器其中包含您编译的其他Groovy脚本。或者,如果使用GroovyScriptEngine,则可以将引用传递到脚本所在的目录,并且引擎会为您编译它们,并使其可用于该目录中的其他脚本。

有关将Groovy嵌入Java的更多信息,请访问:http://groovy.codehaus.org/Embedding+Groovy

但一般来说,我需要更多地了解你的设置(文件夹结构,构建工具,你在编译过程中编译groovy代码,如何从java运行groovy代码,如何从groovy中调用groovy脚本,你是否组织你的类路径等)给你更精确的建议。

相关问题