用myeclipse从SVN上down下web项目,类文件不能自动编译,各种办法各种痛苦上网搜索资料都没有解决,无耐加痛苦之中在反其道而行在build path中把jar包全部remove,结果奇迹出现,项目居然可以自动编译了。
痛定私痛解决问题原理最重要,web项目上出现叹号基本都是因为项目上jar引用错误导致的,而引用jar包主要是项目的“.classpath”来控制的。
.classpath引用jar主要有两种方式:
一种是单个引用 如:<classpathentry kind="lib" path="WebCrm/WEB-INF/lib/icu4j.jar"/>
另一种则是整体引用,通过引用lib文件夹来引用的,如:
<classpathentry kind="con" path="com.genuitec.runtime.library/com.genuitec.jstl_1.2">
<attributes>
<attribute name="owner.project.facets" value="jst.web.jstl"/>
<attribute name="org.eclipse.jst.component.dependency" value="/WEB-INF/lib"/>
</attributes>
</classpathentry>
如果重复引用就会导致项目上有叹号,类文件不能自动执行编译,所以svn上down下项目不能急于build path处理jar包,要先看.classpath中有没有已经整体引用.jar包了。
网上总结的web项目不能编译类文件常用解决方法(网上直接拿来的):
1.重新导入的项目结构与原来的不同 src包等等都和原来的不同,打开项目主目录,中有个.classpath文件,用记事本打开会发现有一行,估计它的意思就是说你的源文件位置,看看有没有这一行,没有一定要补上,下面就是一些jar包的导入路径,如: //这两行也应该是MyEclipse自动生成的,JAVA运行环境 \J2EE1.4 //导入的JAR包位置 2.刷新项目不自动编译,将WEB-INF下面的classes文件夹中的字节码文件删除后不再重新生成 遇到此问题要检查是否有这一行 这是指定将字节码文件输出到哪,如果没指定当然不会默认给你找个地方存了。 3.以上两个步骤都做完了,但项目依旧跑不起来 这个时候你要用到MyEclipse的项目清理功能,在菜单栏里的project里有个clean,它会强制清除那些配置文件,重新生成就会正确了。 项目跑起来了,要记得做个笔记,以后遇到问题了有个参照!肯能解释的并不正确,但问题确实解决了! 以上摘自:http://hi.baidu.com/icewee/blog/item/60ce691f3fc31 6f21bd57688.html
网上还有就是说: 1:点击project->clean清除部署文件 2:检查project properties->java buildpath->default output folder将其设置为 XXX/WEB-INF/classes 3:禁止将SVN信息编译到classes文件夹的方法 project->Properties -> Java BuildPath -> Source 展开里面的项目 选中Excluded,点击 Edit 按钮 在 Exclusion patterns 中点击 Add 按钮 输入 **/.svn/** 保存即可 我出现问题的原因跟上面有关因为我也是用的SVN。 我是这样解决的:将工程文件下的.setting文件夹和.classpath 和.project文件删了,然后再myeclipse中新建的Java project,这样就好了。不过需要注意的是如果你不先删掉这几个文件就新建(从已存在的工程),那么它引用的还是原来的。所以必须先删除他们。