Java中嵌入的groovy,groovy.lang.MissingPropertyException:没有这样的属性:

Java中嵌入的groovy,groovy.lang.MissingPropertyException:没有这样的属性:,java,groovy,Java,Groovy,我正在做一个Java项目,它用Groovy脚本加载。除了引用其他groovy脚本的groovy脚本(在本例中是一个实用程序类)之外,一切都按预期工作。每当执行包含所述实用程序类的脚本时,插件加载程序就会抛出一个异常“groovy.lang.MissingPropertyException:No-this-property:Util” 在我怀疑Java代码有问题之前,我想首先了解Groovy是如何“找到”其他类的。如果我在eclipse中运行这个项目,并且包含所有这些Groovy脚本的整个项目目录

我正在做一个Java项目,它用Groovy脚本加载。除了引用其他groovy脚本的groovy脚本(在本例中是一个实用程序类)之外,一切都按预期工作。每当执行包含所述实用程序类的脚本时,插件加载程序就会抛出一个异常“groovy.lang.MissingPropertyException:No-this-property:Util”

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


还有其他想法吗?

Groovy在脚本和类之间有区别。如果Groovy文件包含一些类定义之外的代码,那么它将被视为一个脚本,并被编译到位于默认包中的类中(无论在
声明中设置了什么)

我不知道如何调用Groovy脚本,但如果使用class,则
GroovyShell
有一个构造函数,其参数为
ClassLoader
类型,您可以将当前的类加载器传递给该类加载器,也可以将包含其他已编译Groovy脚本的自定义类加载器。或者,如果使用,可以将引用传递给脚本所在的目录和引擎将为您编译它们,并使它们可用于该目录中的其他脚本

有关将Groovy嵌入Java的更多信息,请参见:


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

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

我不知道如何调用Groovy脚本,但如果使用class,则
GroovyShell
有一个构造函数,其参数为
ClassLoader
类型,您可以将当前的类加载器传递给该类加载器,也可以将包含其他已编译Groovy脚本的自定义类加载器。或者,如果使用,可以将引用传递给脚本所在的目录和引擎将为您编译它们,并使它们可用于该目录中的其他脚本

有关将Groovy嵌入Java的更多信息,请参见:


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

我们可能需要看看你用来执行groovy的代码我们可能需要看看你用来执行groovy的代码