如何在另一个groovy脚本中简单地导入groovy文件
错误: %groovycsimple.groovy org.codehaus.groovy.control.multipleCompationerErrorSexception: 启动失败:编译未完成:应找到该类 在/home/bharat/groovy/lib/GTemplate.groovy中使用lib.GTemplate,但是 文件包含类:GTemplate 1错误如何在另一个groovy脚本中简单地导入groovy文件,groovy,Groovy,错误: %groovycsimple.groovy org.codehaus.groovy.control.multipleCompationerErrorSexception: 启动失败:编译未完成:应找到该类 在/home/bharat/groovy/lib/GTemplate.groovy中使用lib.GTemplate,但是 文件包含类:GTemplate 1错误 看起来您将Groovy与类似PHP的技术混淆了 因为它更接近Java,如果一个类存在于子文件夹中,它需要存在于同名的包中。在
看起来您将Groovy与类似PHP的技术混淆了 因为它更接近Java,如果一个类存在于子文件夹中,它需要存在于同名的包中。在您的示例中,可以将这一行添加到
GTemplate.groovy
的顶部,然后重新编译文件:
~/groovy
% tree
.
├── lib
│ ├── GTemplate.class
│ └── GTemplate.groovy
└── Simple.groovy
class GTemplate {
static def toHtml() {
this.newInstance().toHtml1()
}
def toHtml1() {
"test"
}
}
import lib.*
class Simple extends GTemplate {
}
但是,这意味着GTemplate的完全限定名现在实际上是lib.GTemplate
。这可能不是你想要的
或者,如果您希望使用子文件夹中的文件而不使用包,则可以从Simple.groovy
中删除import
语句,而是像这样编译和运行该类:
package lib
注意:如果尚未设置类路径
,只需使用:
另外,对于windows计算机,将$CLASSPATH:
更改为%CLASSPATH%代码>
我强烈建议学习软件包并了解它们的工作原理。看看这个作为一个起点
groovyc -classpath $CLASSPATH:./lib/ Simple.groovy
groovy -classpath $CLASSPATH:./lib/ Simple
groovyc -classpath ./lib/ Simple.groovy
groovy -classpath ./lib/ Simple