eclipse bug(四)项目红叉
eclipse bug(四)项目红叉
之前粗心大意,不知道用Problems视图,真不应该
0.查看Problems视图,定位错误,发现处理之;
1.检查Build Path中的各个依赖jar及library是否有warning的标志,若有,处理之;
2.project->clean 工程;
3.window->preference->java->complier->building->build path problems->cirluar dependency设置成warning
4.对于安装有Maven插件的,可以右键项目->Maven->Update Project;
Refer:
http://christhb.blog.163.com/blog/static/9898249201171502827979/ eclipse导入工程出现大红叹号
总结:
问题原因:工程中classpath中指向的包路径错误
解决办法:到BUILDPATH CONFIG````中,liberaies中 出现红色叉号的包为路径错误的包。到classpath中修改相应包的当前路径。然后回到eclipse中F5刷新工程。
下面两段为我解决此问题时在网上找的参考资料,可参阅:
你用myeclipse新建 web工程, 在工程目录下会生成一个 .classpath 配置文件,
里面是你工程里面引用的jar的配置。这个.classpath 对你的web工程没有什么影响
其实是给 myeclipse 识别的。 你说的这种情况是因为 .classpath 文件里面
配置引用了某个jar,但是实际上你的 lib 里面并没有这个jar 所以才会有红色的提示。
你不用拿.classpath文件和你的jar一个个去找, 你现在打开MyEclipse
右键单击你的web工程,找到 Build Path > Configure Build Paht...
> 然后上面有几个选项卡找到 Libraries。 这里看到的就是你工程里面引用的
所有的 jar , 看看是不是在某个jar图标上有个很小的黄色的感叹号?
如果有的话就没错了, 先选中这个jar, 点击右边的 Remove > 点击OK
等待几秒, 现在web工程上面的红色XX是不是没有了,哈哈。
解释一下: 黄色的感叹号的jar,表示.classpath配置文件引用了jar,
但是实际上lib里面没有这个jar。
组里每个人做的方向不一样,由于没有配置svn之类的东西,整合的时候需要copy项目,当时的想法很幼稚,直接就在eclipse中import项目了,可项目上总是出现一个红感叹号不知道为什么,看看package里的class也没有报错,有时候可以正常运行,但昨天发现了许多错误:一运行就提示找不到某某类,可是查看WEB-INF下的lib,里面明明有,为什么找不到呢?查了好久,就是找不到原因,后来从一个帖子上找到了查找错误的思路:看eclipse的Markers这个视窗,真是个好东西啊!出现这种情况一般都是classpath的问题,由于在我自己的开发环境中,我的lib库是自己的user library,引用自己某个地方的类,可是当别人import进自己的eclipse中时,eclipse查看.classpath文件的配置,发现没有需要的类库,当然会有问题。
这也给自己提醒:项目中build path的时候引用的包最好不要是独立的user library,而应该直接引用WEB-INF/lib中的类库,便于发布,路径问题也不容易出现。
这个是myeclipse的验证功能 右击项目->MyEclipse->Remove All Validation Markers就可以了牛刀小试:1)Dynamic Web Module 3.0 requires Java 1.6 or newer
v一、问题描述
1.错误截图如下。
2.设计的问题
在Eclipse中新建了一个Maven工程, 然后更改JDK版本为1.6, 结果每次使用Maven > Update project的时候JDK版本都恢复成1.5。
v二、原因分析
Maven官方文档有如下描述:
编译器插件用来编译项目的源文件.从3.0版本开始, 用来编译Java源文件的默认编译器是javax.tools.JavaCompiler (如果你是用的是java 1.6) . 如果你想强制性的让插件使用javac,你必须配置插件选项 forceJavacCompilerUse.同时需要注意的是目前source选项和target 选项的默认设置都是1.5, 与运行Maven时的JDK版本无关.如果你想要改变这些默认设置, 可以参考 Setting the -source and -target of the Java Compiler中的描述来设置 source 和target 选项.
这是Maven已知的一个特性。除非在你的POM文件中显示的指定一个版本,否则会使用编译器默认的source/target版本1.5。主要还是在于Eclipse中Maven的集成方式起到了关键作用, 它会从POM文件中生成项目的.project,.classpath以及.settings, 因此除非POM文件指定了正确的JDK版本, 否则你每次更新项目配置的时候它都会重置到1.5版本。
v三、解决办法
eclipse maven 在项目的pom.xml的标签中加入:
org.apache.maven.plugins
maven-compiler-plugin
3.1
1.8
1.8
保存,项目构建完成后在项目文件夹上点右键,选择Maven->Update Project Configuration,问题解决。2)java compiler level does not match the version of the installed java project facet
因工作的关系,Eclipse开发的Java项目拷来拷去,有时候会报一个很奇怪的错误。明明源码一模一样,为什么项目复制到另一台机器上,就会报“java compiler level does not match the version of the installed java project facet”错误呢?
如图所示:
其实要解决也很简单,在资源管理器下,找到项目所在的目录,在.settings子目录里面,用文本编辑器打开org.eclipse.wst.common.project.facet.core.xml配置文件,如图所示:
修改红色画线部分,让它与项目的编译器版本设置保持一致即可。
要查看项目的编译器版本设置,在Eclipse环境中,鼠标右键选择项目,点击Properties,选择Java Compiler,可以在窗口右边看到编译器版本,如图所示:
3)maven项目中JRE System Library Problem J2SE-1.5问题
(1)问题:
我们创建的maven web项目,jre system library 使用的是j2se-1.5,如何更改为我们自己安装的jdk?
(2)原因:
maven是项目管理工具,默认使用J2SE-1.5的库管理项目(我的是1.5,也可能是其他版本),用maven-compiler-plugin插件,就是为了告诉maven使用什么版本的库来管理项目。
(3)解决办法:
第1种
.在pom文件中加入以下代码
[html] view plaincopy
org.apache.maven.plugins
maven-compiler-plugin
1.8
1.8
lt;/build>如下图
第2种
修改settings.xml ,在标签内添加如下配置:[html] view plaincopy
jdk-1.8
true
1.8
1.8
1.8
1.8
(4)更新项目(或者重启eclipse使setting设置生效)
eclipse bug(四)项目红叉相关教程