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

dor*_*ien 47 java eclipse openjdk windows-runtime

Eclipse给了我一个错误:

'<>' operator is not allowed for source level below 1.7 
Run Code Online (Sandbox Code Playgroud)

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

我从kepler切换回juno以减少一些滞后并尝试找出这个bug,到目前为止无济于事.

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

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

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

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

Eri*_*low 85

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

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

  • 这个答案对我有用,但我不得不再执行一步:在重建之前清理你的项目!对于大多数人来说,这可能是没有道理的,但我认为如果他们像我一样,它可以为一些人节省几分钟的时间.我在清洁之前尝试过建造,但仍然遇到上述错误. (2认同)

小智 28

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


Dil*_*anG 6

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

Map<String, Integer> map = new HashMap<String, Integer>();
Run Code Online (Sandbox Code Playgroud)

代替

HashMap<String, Integer> map = new HashMap<>();
Run Code Online (Sandbox Code Playgroud)