intellij idea设置java源代码版本和字节码版本;设置了language level,会丢失

编译错误信息

编译java代码时,出现编译错误

Error:(71, 31) java: '<>' operator is not allowed for source level below 1.7

这个错误是因为java 源代码版本比idea中设置的源代码版本高所致,还有一类常见错误,就是目标代码版本高于运行时容器版本,比如字节码是1.8版本运行在java1.7就不行。不过,如果源代码版本设置正确,idea会自动识别目标代码版本,一般不用单独设置。

设置源代码language level

注意,如果maven中的pom设置了源代码和目标代码的版本,那么就不用在idea中再设置了,因为idea会自动识别pom中指定的java源代码版本和目标代码版本,并且即使你设置了,idea仍然会用pom中的版本覆盖你的设置。如果项目中没用maven,那么请继续往下看,intellij idea中的源代码language level分为两个层级,project级别的和module级别的,module级别可覆盖project级别。

project 层级的language level

File | project structure(快捷键,ctrl+alt+shift+s)|

在这里插入图片描述

module 层级的language level

File | project structure(快捷键,ctrl+alt+shift+s)| 在这里插入图片描述

设置字节码版本

File | Settings (快捷键,ctrl+alt+s)| Build, Execution, Deployment | Compiler | Java Compiler

在这里插入图片描述

问题-设置的版本,间歇性丢失

也许你遇到过设置了language level,但是间歇性失效问题,尤其是点击maven的刷新按钮(reimport all maven projects)立刻丢失。到这里,相信你基本猜到答案了,对,就是前边提到过的,被maven的设置覆盖掉了。
在这里插入图片描述
解决办法就是在pom.xml中设置编译器的源代码版本和字节码版本,配置如下

<plugin>
   <groupId>org.apache.maven.plugins</groupId>
     <artifactId>maven-compiler-plugin</artifactId>
     <configuration>
       <source>1.7</source>
       <target>1.7</target>
     </configuration>
 </plugin>
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值