在命令行中的软件包执行Groovy类
-
06-09-2019 - |
题
是否有通过用点指定包,用java执行Groovy类的方法吗?
例:文件./my/package/MyClass.groovy:
package my.package
class MyClass {
static void main(String[] args) {
println "ok"
}
}
> cd my/package my/package> groovy MyClass ok > cd ../.. > groovy my/package/MyClass.groovy ok > groovy my/package/MyClass ok > groovy my.package.MyClass Caught: java.io.FileNotFoundException: my.package.MyClass
我期待的最后一个命令的工作。我试着设置classpath中无济于事的各种方式。
解决方案
首先,包是保留关键字,因此不能使用它作为一个包的名称。
所有的二,你不能这样做,在Groovy中,由于点符号用于类,而不是脚本,所以你需要一个编译的类文件中使用它。
不过,你可以用java +类路径替换常规命令:
java -cp /usr/share/java/groovy/embeddable/groovy-all-1.6.3.jar:. my.some.MyClass
您可以添加别名比如它g_java“,使其更简洁。
不隶属于 StackOverflow