我正在测试Java 8的一些新特性,并将示例复制到我的IDE(最初是Eclipse,然后是IntelliJ),如下所示
Eclipse对lambda表达式不提供任何支持,IntelliJ不断报告错误
此语言级别不支持Lambda表达式
我想知道这是否是我的安装、代码或支持的问题。
我正在测试Java 8的一些新特性,并将示例复制到我的IDE(最初是Eclipse,然后是IntelliJ),如下所示
Eclipse对lambda表达式不提供任何支持,IntelliJ不断报告错误
此语言级别不支持Lambda表达式
我想知道这是否是我的安装、代码或支持的问题。
当前回答
正如Stephen C指出的,Eclipse Kepler(4.3)在安装补丁时支持Java 8(安装说明在这里)
安装完成后,您需要告诉您的项目使用java 8。首先将JDK添加到eclipse:
进入“窗口->首选项” 进入“Java ->已安装jre” 添加标准虚拟机,并指向JRE的位置 然后选择编译器 将编译器遵从级别设置为1.8
然后告诉项目使用JDK 1.8:
进入项目->首选项 转到Java编译器 启用项目特定设置 将编译器遵从级别设置为1.8
其他回答
对于intellij 13, 使用下面的导航,简单地将Project语言级别本身更改为8.0。
File
|
|
---------Project Structure -> Project tab
|
|________Project language level
模块郎水平
当java编译器没有maven插件时,我还必须更新Modules lang级别。
File
|
|
---------Project Structure -> Modules tab
|
|________ language level
但如果已经有maven插件,这个Module lang级别将自动固定,
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.6.0</version>
<configuration>
<source>1.8</source>
<target>1.8</target>
</configuration>
</plugin>
在改变之后,一切看起来都很好
检查以下设置:
文件->项目结构->项目标签。 项目SDK应设置为8或以上 文件- >项目结构- >模块。 *检查您或所有模块的语言级别设置为8或以上 文件->设置(或其他设置->首选项在新Idea版本的新项目) *搜索Java编译器,检查项目字节码版本 并且每个模块的字节码版本设置为8或以上
您的问题可能属于上述定义的任何一类。
在IntelliJ IDEA 15中使用Java 8 (lambdas等)编译;
CTRL + ALT + SHIFT + S或文件/项目结构 打开项目选项卡 将项目SDK设置为兼容的java版本(1.8) “项目语言级别”设置为“8” 打开模块选项卡 设置“语言级别”为“8”,单击“确定” CTRL + ALT + S或文件/设置 构建,执行,部署/编译器/ Java编译器 将目标字节码版本更改为1.8,单击确定
即使在IntelliJ和Eclipse上应用了上述定义的项目特定设置,它仍然是失败的!
对我来说有用的是在POM XML中添加了带有源和目标的maven插件,设置为1.8:
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>2.0.2</version>
<configuration>
<source>1.8</source>
<target>1.8</target>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<configuration>
<archive>
<manifest>
<addClasspath>true</addClasspath>
<classpathPrefix>lib/</classpathPrefix>
<mainClass>com.abc.sparkcore.JavaWordCount</mainClass>
</manifest>
</archive>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-dependency-plugin</artifactId>
<executions>
<execution>
<id>copy</id>
<phase>install</phase>
<goals>
<goal>copy-dependencies</goal>
</goals>
<configuration>
<outputDirectory>${project.build.directory}/lib</outputDirectory>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
正如Stephen C指出的,Eclipse Kepler(4.3)在安装补丁时支持Java 8(安装说明在这里)
安装完成后,您需要告诉您的项目使用java 8。首先将JDK添加到eclipse:
进入“窗口->首选项” 进入“Java ->已安装jre” 添加标准虚拟机,并指向JRE的位置 然后选择编译器 将编译器遵从级别设置为1.8
然后告诉项目使用JDK 1.8:
进入项目->首选项 转到Java编译器 启用项目特定设置 将编译器遵从级别设置为1.8