是否有通过用点指定包,用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“,使其更简洁。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top