java compile总是是1.5_eclipse bug(四)项目红叉

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.错误截图如下。

88cd91e54ba2b17cab3124b98e8df019.png

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的标签中加入:f6751666c8ca382bfda60ed737836736.gif

org.apache.maven.plugins

maven-compiler-plugin

3.1

1.8

1.8

f6751666c8ca382bfda60ed737836736.gif

保存,项目构建完成后在项目文件夹上点右键,选择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”错误呢?

如图所示:

1c17e3daed0e0cd25b19009718b7b2f9.png

其实要解决也很简单,在资源管理器下,找到项目所在的目录,在.settings子目录里面,用文本编辑器打开org.eclipse.wst.common.project.facet.core.xml配置文件,如图所示:

8385e8135a541d6a34c2b49f04aa8182.png

修改红色画线部分,让它与项目的编译器版本设置保持一致即可。

要查看项目的编译器版本设置,在Eclipse环境中,鼠标右键选择项目,点击Properties,选择Java Compiler,可以在窗口右边看到编译器版本,如图所示:

e9a6b4505b8834c1cd240ecdeaa5d28a.png

3)maven项目中JRE System Library Problem J2SE-1.5问题

(1)问题:

我们创建的maven web项目,jre system library 使用的是j2se-1.5,如何更改为我们自己安装的jdk?

936ae82d7a78a5c0cfcf8c447eb3f883.png

(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>如下图

46e6e619072487b7a55bad190bd89e5c.png

第2种

修改settings.xml ,在标签内添加如下配置:[html] view plaincopy

jdk-1.8

true

1.8

1.8

1.8

1.8

(4)更新项目(或者重启eclipse使setting设置生效)

58cfd3fb31df7fb6c86a9313b78a6efe.png

eclipse bug(四)项目红叉相关教程

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值