command-line - 从命令行执行包中的 Groovy 类

标签 command-line groovy package

有没有办法通过用点指定包来执行 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/

相关文章:

python - 粘贴程序无法停止守护进程

java - 将 JVM 详细输出发送到 stderr 而不是 stdout

bash - 在命令行将 BASH 参数传递给 gawk

java - Java 中的 SVG 验证

groovy - Gradle储存库作为项目领域

android - 如何正确地动态检查android权限

java - 无法导入Java类?

python - 如何根据该类的帮助文件正确组织 Python 类定义?

java - 如何在命令行上避免Java系统属性?

java - 从持久的 Groovy 代码返回值而不使用 java.io.File