jar运行时出现错误:Exception in thread "main" java.lang.NoClassDefFoundError

时间:2022-01-07 21:12:18
错误信息如下:
Exception in thread "main" java.lang.NoClassDefFoundError: HelloWorld/HelloWorld
 (wrong name: HelloWorld)
        at java.lang.ClassLoader.defineClass1(Native Method)
        at java.lang.ClassLoader.defineClass(ClassLoader.java:620)
        at java.security.SecureClassLoader.defineClassSecureClassLoader.java:124)
        at java.net.URLClassLoader.defineClass(URLClassLoader.java:260)
        at java.net.URLClassLoader.access$100(URLClassLoader.java:56)
        at java.net.URLClassLoader$1.run(URLClassLoader.java:195)
        at java.security.AccessController.doPrivileged(Native Method)
        at java.net.URLClassLoader.findClass(URLClassLoader.java:188)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
        at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:268)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:251)
        at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:319)

文件结构为:HelloWorld文件夹下HelloWorld.java、HelloWorld.class;并且命令行方式java HelloWorld能够正确执行。与HelloWorld文件夹同级生成helloworld.jar文件。

MENIFEST.mf内容为:HelloWorld.HelloWorld

环境变量classpath中设置为:.;C:\jdk150_04\lib;

20 个解决方案

#1


把你的程序所在的目录加入到classpath环境变量中试试。

#2


main里面变量没初始化

#3


1、main里面变量没初始化

2、把你的程序所在的目录加入到classpath环境变量中试试。


#4


你们说的方法不行……

#5


一般出现NoClassDefFoundError这个时通常是环境设置的问题。
请将tools.jar和dt.jar都加到classpath中。

#6


保存的文件名字是 HelloWorld.java 么?类的名字是HelloWorld么 ?

cmd后进到了这个类所在的目录了么?dir看一下有这个文件没?

javac HelloWorld.java   然后  java HelloWorld

#7


是不是忘了import啊..
或者MAIN()没有初始化

#8


文件结构为:HelloWorld文件夹下HelloWorld.java、HelloWorld.class;并且命令行方式java HelloWorld能够正确执行。与HelloWorld文件夹同级生成helloworld.jar文件。

看看你的文件名,是不是文件名错误

#9


环境没配好

#10


同求!

#11


我也发生这样的问题啊,急救!!1
整个程序都崩溃啊!!

#12


哪里出问题啊,给出个详细地解决方案,谢谢!

#13


我以前也有这个问题,配置如下:
创建环境变量:
JAVA_HOME=C:\jdk150_04;
PATH=%JAVA_HOME%\bin;%PATH%
CLASSPATH=.;%JAVA_HOME%\lib

祝你好运!!!

#14


该回复被版主删除

#15


再eclipse里的,所以就跟环境变量没什么关系阿,怎么办,谢谢阿

#16


我不是在eclipse环境下做的。纯手工编译、打包的。
现已解决:打包时路径不对。

#17


我也出现了这个原因,有谁知道啊

#18


输入Java -cp . HelloWorld 就可以了,注意里面的空格

#19


有可能是你的其他目录里有相同的工程名称,修改你的工程名试下

#20


需要将lib文件夹设置为source folder 设置方式是 右键Lib文件夹 ->build path-> use as source folder

#1


把你的程序所在的目录加入到classpath环境变量中试试。

#2


main里面变量没初始化

#3


1、main里面变量没初始化

2、把你的程序所在的目录加入到classpath环境变量中试试。


#4


你们说的方法不行……

#5


一般出现NoClassDefFoundError这个时通常是环境设置的问题。
请将tools.jar和dt.jar都加到classpath中。

#6


保存的文件名字是 HelloWorld.java 么?类的名字是HelloWorld么 ?

cmd后进到了这个类所在的目录了么?dir看一下有这个文件没?

javac HelloWorld.java   然后  java HelloWorld

#7


是不是忘了import啊..
或者MAIN()没有初始化

#8


文件结构为:HelloWorld文件夹下HelloWorld.java、HelloWorld.class;并且命令行方式java HelloWorld能够正确执行。与HelloWorld文件夹同级生成helloworld.jar文件。

看看你的文件名,是不是文件名错误

#9


环境没配好

#10


同求!

#11


我也发生这样的问题啊,急救!!1
整个程序都崩溃啊!!

#12


哪里出问题啊,给出个详细地解决方案,谢谢!

#13


我以前也有这个问题,配置如下:
创建环境变量:
JAVA_HOME=C:\jdk150_04;
PATH=%JAVA_HOME%\bin;%PATH%
CLASSPATH=.;%JAVA_HOME%\lib

祝你好运!!!

#14


该回复被版主删除

#15


再eclipse里的,所以就跟环境变量没什么关系阿,怎么办,谢谢阿

#16


我不是在eclipse环境下做的。纯手工编译、打包的。
现已解决:打包时路径不对。

#17


我也出现了这个原因,有谁知道啊

#18


输入Java -cp . HelloWorld 就可以了,注意里面的空格

#19


有可能是你的其他目录里有相同的工程名称,修改你的工程名试下

#20


需要将lib文件夹设置为source folder 设置方式是 右键Lib文件夹 ->build path-> use as source folder

#21