从命令行在包中执行Groovy类

时间:2009-05-28 03:36:47

标签: command-line groovy package

有没有办法通过使用点指定包来执行Groovy类,就像使用java?

一样

示例:文件./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

我期待最后一个命令工作。我尝试了各种设置类路径的方法,但无济于事。

1 个答案:

答案 0 :(得分:15)

首先, package 是保留关键字,因此您不能将其用作包名。

其次,你不能在Groovy中这样做,因为点符号用于类,而不是脚本,所以你需要一个编译的类文件来使用它。

但是,您可以使用java + classpath替换groovy命令:

java -cp /usr/share/java/groovy/embeddable/groovy-all-1.6.3.jar:. my.some.MyClass

例如,你可以为它添加一个别名'g_java',以减少它的冗长。