Exception in thread “main“ java.lang.NoClassDefFoundError: HelloWorld DOS中运行加载不出主类

情况说明

Exception in thread “main” java.lang.NoClassDefFoundError: HelloWorld
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClassCond(ClassLoader.java:632)
at java.lang.ClassLoader.defineClass(ClassLoader.java:616)
at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:141)
at java.net.URLClassLoader.defineClass(URLClassLoader.java:283)
at java.net.URLClassLoader.access$000(URLClassLoader.java:58)
at java.net.URLClassLoader 1. r u n ( U R L C l a s s L o a d e r . j a v a : 197 ) a t j a v a . s e c u r i t y . A c c e s s C o n t r o l l e r . d o P r i v i l e g e d ( N a t i v e M e t h o d ) a t j a v a . n e t . U R L C l a s s L o a d e r . f i n d C l a s s ( U R L C l a s s L o a d e r . j a v a : 190 ) a t j a v a . l a n g . C l a s s L o a d e r . l o a d C l a s s ( C l a s s L o a d e r . j a v a : 307 ) a t s u n . m i s c . L a u n c h e r 1.run(URLClassLoader.java:197) at java.security.AccessController.doPrivileged(Native Method) at java.net.URLClassLoader.findClass(URLClassLoader.java:190) at java.lang.ClassLoader.loadClass(ClassLoader.java:307) at sun.misc.Launcher 1.run(URLClassLoader.java:197)atjava.security.AccessController.doPrivileged(NativeMethod)atjava.net.URLClassLoader.findClass(URLClassLoader.java:190)atjava.lang.ClassLoader.loadClass(ClassLoader.java:307)atsun.misc.LauncherAppClassLoader.loadClass(Launcher.java:301)
at java.lang.ClassLoader.loadClass(ClassLoader.java:248)
Could not find the main class: HelloWorld. Program will exit.

以上是我在DOS命令中运行字节码文件(.class)出现的错误,我使用的MyEclipse写的第一个程序HelloWorld,运行不出来也是很崩溃。

解决方法

查询了多方面的原因,解决方法综合如下:
(1)JDK配置中CLASSPATH的配置出现错误
解决方法: .;%JAVA_HOME%\lib;%JAVA_HOME%\lib\tools.jar
在配置JDK后一定要在DOS窗口中检验一下!!!(具体配置可以搜到很多)
java -version
在-前有个空格
javac

(2)检查HelloWorld.java文件中的代码书写,区分大小写,初次写可能会出现大小写错误。
(3)使用指令javac xxxx.java文件后会生成字节码文件,确保生成的字节码文件(.class后缀的文件)存在并且和.java文件在一个目录下。

以上我都确定没有错误,但是还是出现了错误,原因:在代码中含有package
解决方法:
(1)去掉包名运行
(2)运行时加上包名
具体:javac -d . HelloWorld.java
运行后会出现一个为包名的文件夹,文件夹有HelloWorld.class文件
在.java所在的目录下打开DOS窗口,javac 运行之后加上包名.类名
例如:javac step.HelloWorld(step为包名)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值