有没有办法通过用点指定包来执行 Groovy 类,就像 java 一样?
示例:文件 ./my/package/MyClass.groovy:
package my.package
class MyClass {
static void main(String[] args) {
println "ok"
}
}
> cd 我的/包
我的/包> groovy MyClass
行
> cd ../..
> groovy 我的/包/MyClass.groovy
行
> groovy 我的/包/MyClass
行
> groovy my.package.MyClass
捕获:java.io.FileNotFoundException:my.package.MyClass
我期待最后一个命令起作用。我尝试了各种设置类路径的方法,但无济于事。
最佳答案
首先,package是一个保留关键字,所以不能作为包名使用。
其次,您不能在 Groovy 中这样做,因为点表示法用于类,而不是用于脚本,因此您需要一个已编译的类文件才能使用它。
不过,您可以用 java + classpath 替换 groovy 命令:java -cp /usr/share/java/groovy/embeddable/groovy-all-1.6.3.jar:. my.some.MyClass
例如,您可以为其添加别名“g_java”以使其不那么冗长。
关于command-line - 从命令行执行包中的 Groovy 类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/919060/