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

djs*_*dog 9 java groovy classpath

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

java -cp src:.:lib/* -jar lib/groovy-all-2.0.1.jar src/com/example/MyScript.groovy
Run Code Online (Sandbox Code Playgroud)

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

CLASSPATH="src:.:lib/*" groovy src/com/example/MyScript.groovy 
Run Code Online (Sandbox Code Playgroud)

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

Ian*_*rts 19

你不能结合了-jar,并-cp在一个java命令,所以你需要明确命名的主类.查看groovy-allJAR 的清单,主要的类名是groovy.ui.GroovyMain,所以你需要

java -cp 'src:.:lib/*' groovy.ui.GroovyMain src/com/example/MyScript.groovy
Run Code Online (Sandbox Code Playgroud)

(如果groovy-所有都没有被lib/*你覆盖,那么你也需要添加它-cp).