我正在尝试在linux中运行一个简单的java程序,但获得NoClassDeffoundError
。
基本上,我有以下文件夹结构:
lib/myRef.jar
src/MyTest.java //there are classes that being referenced in myRef.jar
我这样编译:
javac -cp ../lib/myRef.jar MyTest.java //The class file is being gerenated in the same directory
然后当我尝试跑步时:
java -classpath . myRef
我在jar文件中引用的类上得到NoClassDefFoundError
。
我是否需要引用 lib 和我正在运行的当前类?
答案 0 :(得分:3)
是的,在使用java运行代码时,您还需要在类路径上使用 myRef.jar 。此外,如果您想将类MyTest
作为主类运行,那么您似乎将错误的类名传递给java,然后使用:
java -classpath ../lib/myRef.jar:. MyTest
对你使用的支持类进行编译是不够的,当你运行你的程序时,它们也需要在类路径中。