eclipse中的openjdk 1.7:不允许运算符的源级别低于1.7

时间:2013-10-15 13:23:02

标签: java eclipse windows-runtime openjdk

Eclipse给了我一个错误:

'<>' operator is not allowed for source level below 1.7 

我想这是因为它没有使用java 1.7。除此之外。至少openjdk 1.7(我的操作系统是OpenSuse 12.3)。

我从kepler转到juno以减少一些滞后并试图找出这个bug,到目前为止无济于事。

我尝试过的一些事情: - eclipse的默认运行时是opensdk 1.7(在帮助中说明,安装细节) - 项目属性,java build - &gt;图书馆。我手动添加了opensdk位置。

我会安装oracle版本,但opensuse存储库中只有1.6。我已经尝试安装oracle提供的rpm,它没有把自己放在我的路径中,并且把一切搞砸了,所以我再次删除它。

它应该与openjdk一起工作吗?或者你认为它有错误吗?

ps:junit也无法识别,所以我手动链接到jar文件。也许这是相关的信息。

8 个答案:

答案 0 :(得分:82)

在项目的首选项中,您必须将编译器--source选项设置为1.7,将--target选项设置为1.7。有专门的选项框。

右键单击该项目。选择属性。选择左侧的 Java Compiler 。为编译器合规性级别选择1.7。如果下面的2个下拉列表不是1.7,请取消选中使用默认合规性设置并将其设置为1.7

答案 1 :(得分:28)

右键单击错误,选择快速修复,然后选择将JRE更改为1.7

答案 2 :(得分:6)

如果您想使用以下版本,请使用

Map<String, Integer> map = new HashMap<String, Integer>();

而不是

HashMap<String, Integer> map = new HashMap<>();

答案 3 :(得分:2)

右键单击Project - properties - Java Complier - Compiler compliance -set level 1.7

答案 4 :(得分:0)

如果您想坚持使用java 1.6,请搜索并替换&lt;&gt;用空字符串。您将收到编译器警告,但错误应该消失。

答案 5 :(得分:0)

我有同样的问题,但随着   - 编译器合规性级别   - 生成的.class文件兼容性   - 源兼容性 所有已经设置为1.7。 我在所有3上重新选择了1.7,然后Eclipse检测到它,要求重建并成功构建我的项目。

答案 6 :(得分:0)

Window-&gt;偏好设置 - &gt; Java-&gt;编译器

选择1.7并点击即可。

如果您要自动构建,则需要完全重建。

答案 7 :(得分:0)

右键单击该项目。选择属性。选择左侧的Java Compiler。选择1.7作为编译器合规性级别。如果下面的2个下拉列表不是1.7,请取消选中使用默认合规性设置并将其设置为1.7。