首页 文章

使用groovy-all jar运行Groovy脚本时,如何指定类路径?

提问于
浏览
8

我找到了一个在没有使用groovy-all jar文件安装Groovy的系统上运行Groovy脚本的示例 . 我尝试了以下方法:

java -cp src:.:lib/* -jar lib/groovy-all-2.0.1.jar src/com/example/MyScript.groovy

问题是我的脚本依赖于lib目录中的jar以及位于src / com / examples中的另外两个Groovy脚本文件 . 当我运行它时,它会抱怨所有这些的import语句 . 我可以通过使用以下方法在安装了Groovy的系统上运行它:

CLASSPATH="src:.:lib/*" groovy src/com/example/MyScript.groovy

如何使用groovy-all jar以这种方式运行Groovy脚本,并为其提供类路径?

2 回答

  • 1

    您不能在 java 命令中同时组合 -jar-cp ,因此您需要显式命名主类 . 查看 groovy-all JAR的清单,主类名是 groovy.ui.GroovyMain ,所以你需要

    java -cp 'src:.:lib/*' groovy.ui.GroovyMain src/com/example/MyScript.groovy
    

    (如果groovy-all尚未涵盖 lib/* ,您还需要将其添加到 -cp ) .

  • 18

    一种方法是将Groovy文件编译为“* .class”文件 . 然后包含$ GROOVY_HOME / embeddable目录中的jar并将其放在类路径中 .

    这是一个极简主义的例子(第一行是一个简单的Unix副本;使用适用于你的任何东西):

    $ cp /some-dir/groovy-1.8.5/embeddable/* . 
    $ groovyc Test.groovy 
    $ java -cp . groovy-all-1.8.5.jar Test
    

    对于典型的发行版,您可以使用Ant / Maven / Gradle构建自己的jar文件,其中包含已编译的Groovy(即类文件) .

相关问题