gpt4 book ai didi

java - 常规 NoClassDefFoundError

转载 作者:太空宇宙 更新时间:2023-11-04 07:14:32 26 4
gpt4 key购买 nike

我对 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 变量。类路径变量未设置,因此我假设它具有默认的“.”在当前文件夹本身中查找的值。我做错了什么?

最佳答案

您是否缺少类路径中的当前文件夹?

我在 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 位于包中,则需要键入该类的完整路径。所以对于这个绝妙的来源:

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

关于java - 常规 NoClassDefFoundError,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20156139/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com