52

Eclipse 给了我一个错误:

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

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

我从开普勒切换回朱诺以减少一些滞后并尝试找出这个错误,但到目前为止无济于事。

我尝试过的一些事情: - eclipse 的默认运行时是 opensdk 1.7(在帮助、关于、安装详细信息中这么说) - 项目属性、java 构建 -> 库。我已经手动添加了 opensdk 位置。

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

它也应该与openjdk一起使用,不是吗?或者你认为它有一个错误?

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

4

8 回答 8

94

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

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

于 2013-10-15T13:31:28.073 回答
29

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

于 2014-07-08T15:09:29.220 回答
6

如果要使用以下版本,请使用

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

代替

HashMap<String, Integer> map = new HashMap<>();
于 2014-07-28T04:48:17.167 回答
3

右键单击项目-属性-Java编译器-编译器合规性-设置级别1.7

于 2015-09-24T02:23:32.963 回答
0

窗口->首选项->Java->编译器

选择 1.7 并点击 OK。

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

于 2015-02-06T14:00:14.460 回答
0

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

于 2015-02-04T05:14:10.137 回答
0

如果您想坚持使用java 1.6,搜索并用空字符串替换 <>。您会收到编译器警告,但错误应该会消失。

于 2014-08-04T22:13:16.237 回答
0

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

于 2015-05-18T06:31:47.743 回答