groovy NoClassDefFoundError

时间:2013-11-22 23:04:29

标签: java groovy groovyshell

我对groovy很新,我正在尝试Groovy in Action一书中的这个例子。我有这个fibonacci.groovy程序,当尝试使用java命令运行程序时,我收到NoClassDefFound错误。

我在控制台中使用的命令是:

java -cp %GROOVY_HOME%/embeddable/groovy-all-2.2.0.jar;classes fibonacci

如您所见,我在类路径中提到了groovy-all jar,并设置了GROOVY_HOME变量。 classpath变量没有设置,所以我假设它有默认的'。'要在当前文件夹中查找的值。我做错了什么?

1 个答案:

答案 0 :(得分:1)

您是否错过了类路径中的当前文件夹?

我在Linux上,但如果我使用groovyc编译Groovy类然后尝试使用java运行它,我需要告诉java我的groovy-all.jar在哪里以及将当前目录添加到类路径

所以,这个编译工作:

$ groovyc Fib.groovy

但是这次运行没有运行:

$ java -cp $GROOVY_HOME/embeddable/groovy-all-2.2.0.jar:classes Fib

因为它缺少路径中的当前目录:

$ java -cp $GROOVY_HOME/embeddable/groovy-all-2.2.0.jar:. Fib
test for fib

另请注意,如果程序包中包含fibonacci,则需要键入该类的完整路径。所以对于这个groovy来源:

package up.foo
println "test for fib"

编译:

$ groovyc Fib.groovy

我们编写完整的包路径来执行:

$ java -cp $GROOVY_HOME/embeddable/groovy-all-2.2.0.jar:. up.foo.Fib

它是:

test for fib