我在eclipse中检查了一个来自SVN的Java项目,并意识到它需要Java 8,因为它使用了lambdas等.我为Java 8安装了eclipse插件并重新启动了eclipse,并且项目设置如下:
我注意到在底部附近,它表示默认的编译器合规性是1.7,所以我进入org.eclipse.jdt.core.prefs
并设置编译器合规性变量1.8
,根据
这个答案.但是,在Project - > Preferences - > Java Compiler中,它仍然显示为:
我在Project - > Java Build Path中设置了JRE:
然而,编译器拒绝编译lambda表达式 - 我得到的错误看起来就像我继续将其输入到Java 7中所得到的错误.
这是我正在使用的eclipse版本
Version: Kepler Service Release 1 Build id: 20130919-0819
解决此问题的唯一方法是安装新版本的Eclipse还是我在配置中遗漏了一些东西?
它导致eclipse kepler SR1不支持lambda表达式等新的Java™8语言增强功能.
从这里的信息:http://www.eclipse.org/downloads/java8/
我认为你应该使用kepler SR2与支持插件,或更改为Eclipse Luna.
更新链接2016年6月16日:https://wiki.eclipse.org/JDT/Eclipse_Java_8_Support_For_Kepler
两件事情:
首先,JRE与JDK不同.如果你有JDK,你需要配置eclipse指向你设置中的那个.
其次,在上面的屏幕截图中,您的编译器合规性级别设置为1.7.这会将您的所有代码视为使用Java 1.7.将其更改为1.8以修复错误.
您需要拥有Eclipse Luna才能获得对Java 8的支持,但如果需要,可以将其添加到Kepler SR2.在你再继续之前,我会尝试使用Luna和上述建议.请参阅此参考.
一旦获得Luna,您的JAVA_HOME变量应足以让Eclipse识别JDK 8.如果要指定其他JDK,可以通过以下方式添加新的Java System Library:
Project -> Properties -> Java Build Path -> Libraries -> Add Library -> Java System Library
并导航到JDK 8的有效位置.
您可以在此处下载平台的JDK 8