java.lang.NoClassDefFoundError

来源:互联网 发布:java设计模式重要吗 编辑:程序博客网 时间:2024/06/10 15:10

今天碰到个问题,就是在eclipse里新加入个类,然后点击run as java application,总是得到如下提示

java.lang.NoClassDefFoundError

但是project里原来的一些class还是能运行。

去google了一下,好像很多都是说跟classpath有关,可我好像没有改过classpath啊。

 

后来发现之所以不能运行,是因为eclipase没有为我的程序生成class文件。为什么不生成呢?

 

google一下,找出这个帖子,问题解决了,就是下面加粗加下划线的一句。

因为我今天整理了一些jar,把一些给删掉了。

-------------------------------------------------------------------------------

有时候用Eclipse或者MyEclipse的时候,发现不能自动编译,web工程下面缺少class文件!

    第一个可能是你的自动编译没打开:project->buildautomatically;第二个要注意你的工程项目上有没有打小红叉,项目报错时,eclipse是不自动编译的。你可以检查一下是否有些类出错,或是检查一下“构建路径”是否完整,特别是从换机子调试程序时,有些导入jar包的路径不对。

    通常我们遇到的是第二个,就是有的包在别人机器上是有的,但是到你的机器上相同路径是没有的,删去和那个包有关系的,或者添加新的包路径

    eclipse出现不编译工程的现象。怎么刷新classes目录下也是空的。

    具体都操作了:打开project->build automatically   试后不行,还是不编译。

    打开project ——> build automatically 另外 clean一下就可能会编译了,结果还不行。(一般先运行project ——>clean…,然后再执行build automatically)

    eclipse默认是选自动编译。即使取消自动编译,手动build工程,也不能编译。

   出现这种情况一般有以下几种原因:1.如果项目里引了某个不用的jar包,而那个包又被你删了,就会出现不报错但怎么也编译不出来class文件的情况,可以把所有包都删除,然后一个一个的再引入(需要的),不要一下子把所有包都引入来,没用的可能会引起不良后果。

    2.想删掉某个class文件重新生成,删除class文件后,但classes目录下的文件夹被其它程序打开,比如TotalCommander.此时编译也不会通过,在problems下可能会提示“con't delete classes……”。关掉其它程序重新编译即可。

    3.还有种情况是remove掉 JRE System Library,重新导入即可编译。但是什么原因导致的还不清楚。

    4.项目引用了其他的项目,而被你引用的项目引用了某个不用的jar包之类

    如果你使用了maven你可以在命令提示行下,跳转到项目路径,执行mvn eclipse:clean eclipse:eclipse重新编译项目

--------------------------------------------------------------------------------------------------

原创粉丝点击