【Maven】 (请使用 -source 8 或更高版本以启用 lambda 表达式)

在使用mvn install编译maven项目时,报了

“ (请使用 -source 8 或更高版本以启用 lambda 表达式)”错误,是因为设置的maven默认jdk编译版本太低的问题。

可使用两种方法解决:

1:在具体项目的pom.xml里面手动指定jdk编译版本。

<project xmlns="...">
    ...
    <build>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <version>3.3</version>
                <configuration>
                    <source>1.8</source>
                    <target>1.8</target>
                </configuration>
            </plugin>
        </plugins>
    </build>
    ...
</project>

2:在maven的settings.xml里面指定全局jdk编译版本。

<profiles>
    <profile>  
      <id>jdk-1.8</id>  
      <activation>  
          <activeByDefault>true</activeByDefault>  
          <jdk>1.8</jdk>  
      </activation>  
      <properties>  
          <maven.compiler.source>1.8</maven.compiler.source>  
          <maven.compiler.target>1.8</maven.compiler.target>  
          <maven.compiler.compilerVersion>1.8</maven.compiler.compilerVersion>  
      </properties>   
   </profile>
</profiles>

 

### 如何升级 `-source` 版本8 更高版本 当遇到 `java: -source X 中不支持 lambda 表达式 (使用 -source 8 更高版本启用 lambda 表达式)` 类似的错误时,这表明当前项目的编译器源码级别设置较低,无法识别 Java 8 引入的语言特性如 Lambda 表达式。以下是具体的解决方案: #### 修改 Maven 配置文件 在 Maven 项目中,通常通过修改 `pom.xml` 文件中的 `<properties>` 和 `<build>` 节点来指定编译器的源码和目标字节码版本。 ```xml <properties> <!-- 设置源码版本 --> <maven.compiler.source>1.8</maven.compiler.source> <!-- 设置目标字节码版本 --> <maven.compiler.target>1.8</maven.compiler.target> </properties> <build> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <version>3.8.0</version> <configuration> <source>1.8</source> <target>1.8</target> </configuration> </plugin> </plugins> </build> ``` 上述配置确保了 Maven 使用 Java 8 进行编译[^1]。 #### IDE 环境配置 如果使用的是 IntelliJ IDEA,则需要进一步确认以下几个方面的 JDK 设置是否正确: 1. **全局 JDK 设置** 打开 IDEA 的设置窗口 (`File -> Settings`),导航到 `Build, Execution, Deployment -> Compiler -> Java Compiler`,确保默认的 Project bytecode version 是 1.8 更高版本[^5]。 2. **项目 JDK 设置** 右键点击项目名称,在弹出菜单中选择 `Open Module Settings`,进入 `Project` 页面,将 `Project SDK` 设定为安装好的 JDK 8 更新版本;同时设定 `Project language level` 至至少 `8 - Lambdas, type annotations etc.`[^3]。 3. **模块级别的 JDK 设置** 继续在 `Module Settings` 下找到对应模块的具体配置页面,同样将其使用的 SDK 更新为 JDK 8 并验证其 Language Level 是否匹配。 完成这些更改之后重新构建整个工程即可消除该类错误提示。 #### 命令行手动测试 为了进一步验证环境变量以及命令行工具链的一致性,可以尝试运行以下指令: ```bash javac -version && javac -source 8 Test.java ``` 这里假设存在一个简单的含 Lambda 表达式Java 文件名为 `Test.java` 。如果一切正常的话应该不会抛出任何异常消息[^4]。 --- ###
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值