今天碰到个问题,就是在eclipse里新加入个类,然后点击run as java application,总是得到如下提示
java.lang.NoClassDefFoundError
但是project里原来的一些class还是能运行。
去google了一下,好像很多都是说跟classpath有关,可我好像没有改过classpath啊。
后来发现之所以不能运行,是因为eclipase没有为我的程序生成class文件。为什么不生成呢?
google一下,找出这个帖子,问题解决了,就是下面加粗加下划线的一句。
因为我今天整理了一些jar,把一些给删掉了。
-------------------------------------------------------------------------------
有时候用Eclipse或者MyEclipse的时候,发现不能自动编译,web工程下面缺少class文件!
第一个可能是你的自动编译没打开:project->build automatically;第二个要注意你的工程项目上有没有打小红叉,项目报错时,eclipse是不自动编译的。你可以检查一下是否有些类出错,或 是检查一下“构建路径”是否完整,特别是从换机子调试程序时,有些导入jar包的路径不对。
通常我们遇到的是第二个,就是有的包在别人机器上是有的,但是到你的机器上相同路径是没有的,删去和那个包有关系的,或者添加新的包路径
eclipse出现不编译工程的现象。怎么刷新classes目录下也是空的。
具体都操作了:打开project->build automatically 试后不行,还是不编译。
打开project ——> build automatically 另外 clean一下就可能会编译了,结果还不行。(一般先运行project ——>clean…,然后再执行build automatically)
eclipse默认是选自动编译。即使取消自动编译,手动build工程,也不能编译。
出现这种情况一般有以下几种原因:1.如果项目里引了某个不用的jar包,而那个包又被你删了,就会出现不报错但怎么也编译不出来class文件的情况, 可以把所有包都删除,然后一个一个的再引入(需要的),不要一下子把所有包都引入来,没用的可能会引起不良后果。
2.想删掉某个class文件重新生成,删除class文件后,但classes目录下的文件夹被其它程序打开,比如Total Commander.此时编译也不会通过,在problems下可能会提示“con't delete classes ……”。关掉其它程序重新编译即可。
3.还有种情况是remove掉 JRE System Library,重新导入即可编译。但是什么原因导致的还不清楚。
4.项目引用了其他的项目,而被你引用的项目引用了某个不用的jar包之类
如果你使用了maven你可以在命令提示行下,跳转到项目路径,执行mvn eclipse:clean eclipse:eclipse重新编译项目
--------------------------------------------------------------------------------------------------