Command line 从命令行在包中执行Groovy类

Command line 从命令行在包中执行Groovy类,command-line,groovy,package,Command Line,Groovy,Package,有没有一种方法可以像java一样,通过用点指定包来执行Groovy类 示例:File./my/package/MyClass.groovy: package my.package class MyClass { static void main(String[] args) { println "ok" } } >cd/我的包 my/package>groovy MyClass 好啊 >cd../。。 >groovy my/package/MyClass.groovy 好啊

有没有一种方法可以像java一样,通过用点指定包来执行Groovy类

示例:File./my/package/MyClass.groovy:

package my.package

class MyClass {
  static void main(String[] args) {
    println "ok"
  }
}
>cd/我的包 my/package>groovy MyClass 好啊 >cd../。。 >groovy my/package/MyClass.groovy 好啊 >groovy my/package/MyClass 好啊 >groovy my.package.MyClass 捕获:java.io.FileNotFoundException:my.package.MyClass 我希望最后一个命令能起作用。我尝试了各种设置类路径的方法,但都没有成功

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

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

尽管如此,您仍然可以用java+类路径替换groovy命令:

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


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

这听起来是正确的答案,但它不起作用。顺便说一句,我以“my.package”为例——我意识到这是一个糟糕的例子。无论如何,即使有一个可接受的包名,并且在使用groovyc编译之后,它也不起作用。groovyc my/some/MyClass.groovy导出类路径=。ls my/some/MyClass.class my/some/MyClass.class groovy my.some.MyClass捕获:java.io.FileNotFoundException:/Users/olivier/my.some.MyClass(/Users/olivier/my.some.MyClass)?你说得对,我不知道我怎么会错过这个。如果您不介意作弊的话,可以用java+类路径替换groovy命令:java-cp/usr/share/java/groovy/embeddeble/groovy-all-1.6.3.jar:。my.some.MyClass您可以向它添加一个别名,例如“g_java”,以减少它的冗长。谢谢。它起作用了。所以,我最初的问题的答案是:不,它在Groovy中不是这样工作的。你必须使用javac和java。谢谢,我一直在寻找这个答案+1.您的java课程结束时是否有额外的时间。。。线路? > 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