找不到或无法加载主类(Exception in thread "main

http://my.oschina.net/leejun2005/blog/106789?fromerr=oIhx8gHQ

       有时候 Eclipse 会发神经,好端端的 project 就这么编译不了了,连 Hello World 都会报“找不到或无法加载主类(Exception in thread "main" java.lang.NoClassDefFoundError:xxx)”的错误,我已经遇到好几次了,以前是懒得深究就直接重建project了,但遇到次数多了必须深究下了,现总结几种解决方案,大家根据自己的情况逐一尝试即可。


      1、是因为.java文件不在项目的src路径内,也就是说源代码未被eclipse编译,字节码不存在无法运行了,在项目名上右键 -> Builder Path -> Configure Build Path -> 选择Source面板,再点Add Folder, 把源代码所在的包路径的上层目录加进来,而且如果你是把两个类写在一个文件里的话,你在右键选择Run As Java Appication 的时候,要把光标置于包括main方法的类上(相当于指定主类入口)。


       2、项目的Java Build Path中的Libraries中也许某个jar包是不可用的,显示红色叉叉。这说明系统找不到这个这个jar文件,把这个jar删除或者重新加载进来即可。


       3、某些情况下,最快捷的解决办法是,打开带有main函数的类,ctrl +A (全选)---> ctrl +X(剪切)-----> ctrl+S(保存)--->关闭---->再打开--->ctrl +V (粘贴) ---->OK;一句话就是剪切出去 关闭 再粘进来。(相当于让 eclipse 重新编译一下,如果你开启了自动编译的话。)


       4、最常见的问题应该是下面的情况:package 被当做 folder 来对待了,导致所有的 .java 文件无法被 eclipse 识别,自然也就无法识别 main 函数,也就没法编译运行了,案例截图:


       此时最快的解决方案是右键源码文件夹选择:

       src remove from build path → src > Build Path > Use as Source Folder

       最后说下 Folder 和 package 的区别:Folder靠"/"来进行上下级划分,package靠“.”来进行上下级划分

       5、最坏的情况下,估计你得重建 Project。(这是最土但是最有效的解决方案)

       6、如果上述不行,大家直接在 cmd 下 javac 然后 java 运行试试,如果这都报错,那是你的 jdk 或者 os 环境有问题了。


======================================================================

http://blog.csdn.net/ljg888/article/details/7698424

       做项目过程中,更新了一下SVN,把自己机器上代码更新成了最新版本,可是在运行程序时发现Eclipse提示:“错误: 找不到或无法加载主类……”。发现根本就没有生成.class文件,也即没有时行编译。后来连错误提示也没有了,点击“build project"后一点反应都没有,不能编译。最后才发现自己犯的错误好低级:工程中的src文件夹不是”源文件包“形式了,显示的是普通文件夹的样式。

解决办法是:在src文件夹上点右键-Build Path-Use as Source Folder,重新进行编译,一切正常了。


       还有一种情况是:Eclipse处于打开状态,而这时更新SVN代码,再在Eclipse中运行java程序时也可能会提示“错误: 找不到或无法加载主类……”。

       解决办法是:在Eclipse工程文件夹上点右键-Refresh,重新编译,一功OK。


       还有一种可能是:项目的Java Build Path中的Libraries中有个jar包是不可用的,显示红色叉叉。这说明系统找不到这个这个jar文件。解决办法:把这个jar删除即可。

       还有一种可能是:项目的Java Build Path中的Libraries中有个jar包的Source attachment指为了一个不可用的jar包,解决办法是:将这个不可用的jar包remove掉。


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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值