eclipse 项目图标显示小红叉但是内部文件树上却没有显示小红叉

    最近使用eclipse开发一个网站项目时,遇到一些问题。他人的工程转到自己电脑上的eclipse报错,以及自己的工程传到他人电脑上的eclipse里报错,用不了。在这里做一个小小的总结。

    主要情况如下图所示——项目图标显示小红叉但是内部文件树上却没有显示小小红叉。


    此时点击顶部工具栏Window->Show View->Other->General->Problems,会在底部弹出Problems窗口,点击Error会出现如下报错语句。

    我主要遇到的有两种

    Target runtime com.genuitec.runtime.generic.jee60 is not defined

    以及

    Project facet Java 1.8 is not supported by target runtime Apache Tomcat v7.0.

① 第一个问题的解决

    第一个问题主要是由于他人工程中的org.eclipse.wst.common.project.facet.core.xml文件中存在一个<runtime>标签,里面进行了相关定义和声明导致的。找到这个xml并且把<runtime>标签以及当中内容删除并保存即可。

    这个xml文件的位置在你的工程目录下的.setting文件夹当中可以找到。打开方式可以自行选择。如下图。



    打开xml文件,我是用的vs2013打开的。


    删除其中<runtime>标签即可

② 第二个问题的解决

    第二个问题更加常见,发给别人的电脑用eclipse打开报错或者是上传到服务器用不了,是由于你的工程JDK版本和别人电脑上配置的JDK环境不匹配造成的。这个稍微麻烦一点,先把你自己电脑上的eclipse的JDK环境照着别人电脑上的JDK版本重新配置一下,然后再将工程内的相关设置改过来之后,再导出war包发给他就能用了。当然如果是你自己的电脑版本太低,人家的工程配置版本更高,也是差不多的,下载高版本的JDK配置好就行了。解决过程如下。

(1)第一步 要下载好适合的JDK文件

     http://www.oracle.com/technetwork/java/javase/downloads/index.html(oracle官网链接)

    再配上一个JDK1.7版本的链接,感觉这个常用点。经常是1.8版本的JDK遇到1.7或者1.6版本的工程就出问题。

    http://www.oracle.com/technetwork/java/javase/downloads/java-archive-downloads-javase7-521261.html

(2)第二步 调整eclipse的默认JDK版本

    这一步很重要,将你下载的JDK在eclipse当中进行配置。

    点击eclipse顶部工具栏Window->Preferences在左侧菜单中找到Java栏中的Compiler。



    将原本的JDK版本值改为1.7。由于我这里已经引入过1.7版本所以界面下方不会出现警告画面。若还未配置新JDK的下面会出现一个黄色三角形里面有个感叹号,点击警告信息最后的"Configure.."即可进入如下界面


    大家可以看到我已经引入过相关1.7JDK了,如果没有引入的点击右侧Add


    双击Standard VM


文件夹按钮,找到你安装的JDK的文件夹的地方,选择其中的JRE文件夹



    之后点击Finish就好啦!我这里已经配置好了所以顶部会显示already in used。

    然后记得回到这个页面去选择新配置的JDK,点击应用


    到这里环境默认的JDK修改就完成了。

(3) 修改工程配置

    右键点击项目图标(项目图标就不上图了)并选择Properties


    选中原来的jre1.8.0-152并点击右侧remove,之后再点击Add Library。


点击 JRE System Library 


直接完成就可以了,因为刚刚已经配置好了默认JRE,系统已经帮你自动选好了,你要实在不确定点击上面的Alternate JRE选择你刚刚配置的jdk1.7版本也行。


可以看到已经改为1.7版本的了,接下来在左侧搜索框内搜索project facets进入如下界面


    把java那一栏的1.8改成1.7再点击应用就好了!

    其实高低版本的JDK也并不总是冲突的,一般是工程JDK配置高于eclipse配置才会出错。我也是个新手,有的时候也搞不太懂具体是什么错误,干脆就把eclipse的JDK环境和工程里关于JDK的配置全改成一个版本。

    总之一句话,工程和eclipse的JDK环境版本不一样可能会引起冲突报错,解决方法就是配置合适的JDK就好!


    最后提一下,发现tomcat的使用不会被eclipse配置的JDK改变影响,所以不用管它。

猜你喜欢

转载自blog.csdn.net/qq_34387317/article/details/79959113
今日推荐