13

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

示例:文件 ./my/package/MyClass.groovy:

package my.package

class MyClass {
  static void main(String[] args) {
    println "ok"
  }
}
> cd 我的/包
我的/包> groovy MyClass
好的
> 光盘../..
> 常规我/包/MyClass.groovy
好的
> 常规我/包/MyClass
好的
> groovy my.package.MyClass
捕获:java.io.FileNotFoundException:my.package.MyClass

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

4

1 回答 1

17

首先,package是保留关键字,所以不能将其用作包名。

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

不过,您可以用 java + 类路径替换 groovy 命令:

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

例如,您可以为其添加别名“g_java”以使其不那么冗长。

于 2009-05-28T11:14:53.263 回答