Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/379.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java groovy NoClassDefFoundError_Java_Groovy_Groovyshell - Fatal编程技术网

Java groovy NoClassDefFoundError

Java groovy NoClassDefFoundError,java,groovy,groovyshell,Java,Groovy,Groovyshell,我对groovy非常陌生,我正在试用groovy中的动作手册中的这个例子。我有一个fibonacci.groovy程序,当试图用java命令运行该程序时,我得到了NoClassDefFound错误 我在控制台中使用的命令是: java -cp %GROOVY_HOME%/embeddable/groovy-all-2.2.0.jar;classes fibonacci 如您所见,我在类路径中提到了groovy all jar,并设置了groovy_HOME变量。classpath变量未设置,因

我对groovy非常陌生,我正在试用groovy中的动作手册中的这个例子。我有一个fibonacci.groovy程序,当试图用java命令运行该程序时,我得到了NoClassDefFound错误

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

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

如您所见,我在类路径中提到了groovy all jar,并设置了groovy_HOME变量。classpath变量未设置,因此我假设它具有默认的“.”值,可以在当前文件夹中找到。我做错了什么?

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

我在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

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

我在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

你有没有用groovyc编译过fibonacci.groovy?书中有没有告诉你要走这条路?我假设
groovy fibonacci.groovy
有效吗?是的,我用groovyc编译了它,类文件生成得很好。是的,groovy fibonacci.groovy工作实际的完整错误消息是什么?这里:
线程“main”java.lang.NoClassDefFoundError:fibonacci引起的异常:java.lang.ClassNotFoundException:fibonacci位于java.net.URLClassLoader$1.run(URLClassLoader.java:202)位于java.security.AccessController.doPrivileged(本机方法)在java.net.URLClassLoader.findClass(URLClassLoader.java:190)在java.lang.ClassLoader.loadClass(ClassLoader.java:306)在sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)在java.lang.ClassLoader.loadClass(ClassLoader.java:247)在java.lang.ClassLoader.java:190)在java.lang.lang.ClassLoader.ClassLoader.java:247上
你用groovy编译?书中有没有告诉你要走这条路?我假设
groovy fibonacci.groovy
有效吗?是的,我用groovyc编译了它,类文件生成得很好。是的,groovy fibonacci.groovy工作实际的完整错误消息是什么?这里:
线程“main”java.lang.NoClassDefFoundError:fibonacci引起的异常:java.lang.ClassNotFoundException:fibonacci位于java.net.URLClassLoader$1.run(URLClassLoader.java:202)位于java.security.AccessController.doPrivileged(本机方法)在java.net.URLClassLoader.findClass(URLClassLoader.java:190)在java.lang.ClassLoader.loadClass(ClassLoader.java:306)在sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)在java.lang.ClassLoader.loadClass(ClassLoader.java:247)上
默认类路径不是“.”是否考虑当前文件夹?运行此命令时,我在该类所在的目录中。这还不够吗?默认类路径“.”不考虑当前文件夹吗?运行此命令时,我在该类所在的目录中。这还不够吗?