maven 无效的源发行版11

作者在遇到编译问题时,发现虽然本地JDK配置为8,但pom.xml中maven-compiler-plugin的source和target设置为11。通过将这两个参数改为8,解决了编译不匹配的问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

我看自己的jdk配置都为8,感觉没问题,后来发现自己pom.xml文件配置的如下:

    <build>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <configuration>
                    <source>11</source>
                    <target>11</target>
                    <encoding>utf-8</encoding>
                </configuration>
            </plugin>
        </plugins>
    </build>

将11改成8,问题解决!!!

### Java 编译错误 '无效源发行版 11' 的解决方案 当遇到 `Java` 编译时出现 `'无效源发行版 11'` 错误时,通常是因为开发环境中的 JDK 版本与项目的配置不匹配所导致。以下是详细的分析和解决办法: #### 1. **确认 JDK 安装版本** 需要先验证当前安装的 JDK 是否为期望的版本。可以通过命令行输入以下指令来检查: ```bash java -version javac -version ``` 如果显示的版本不是预期的版本(例如需要 JDK 11 而实际安装的是 JDK 8),则需重新下载并安装正确的 JDK 版本[^1]。 #### 2. **调整 IDE 中的 JDK 设置** 在 IntelliJ IDEA 或其他集成开发环境中,确保设置的 JDK 是目标版本。具体操作如下: - 打开项目,在菜单栏选择 `File -> Project Structure...` - 在弹出窗口中找到 `Project SDK` 和 `Project language level`。 - 将 `Project SDK` 更改为所需的 JDK 版本(如 JDK 11)。 - 同时将 `Project language level` 设定为对应的语言级别(如 11-Lambda, binary literals 等)。 #### 3. **修改 Maven/Gradle 构建工具的配置文件** 若使用 Maven 或 Gradle 进行项目管理,则需要更新其配置文件以指定正确的编译器版本。 对于 Maven 用户,编辑 `pom.xml` 文件,添加或修改 `<properties>` 部分的内容: ```xml <properties> <maven.compiler.source>11</maven.compiler.source> <maven.compiler.target>11</maven.compiler.target> </properties> ``` 对于 Gradle 用户,编辑 `build.gradle` 文件,设定 `sourceCompatibility` 和 `targetCompatibility` 属性: ```groovy java { sourceCompatibility = JavaVersion.VERSION_11 targetCompatibility = JavaVersion.VERSION_11 } ``` 此外,还需确保构建工具本身能够访问到正确的 JDK 版本。对于 Gradle,可以在 `gradle.properties` 文件中定义路径: ```properties org.gradle.java.home=/path/to/jdk-11 ``` #### 4. **新建项目时注意初始配置** 创建 Spring Boot 或其他类型的项目时,务必在初始化阶段就选定合适的 Java 版本。如果最初选择了较低版本(如 JDK 8),即使后期更改也可能引发兼容性问题。因此建议一开始就选用适合的目标版本[^2]。 通过上述措施应该可以有效解决 `Java` 编译过程中发生的 “无效源发行版” 类型错误。 ```python # 示例代码片段展示如何动态获取JDK版本号 import subprocess def get_jdk_version(): result = subprocess.run(['java', '-version'], stdout=subprocess.PIPE, stderr=subprocess.STDOUT, text=True) version_info = result.stdout.splitlines()[0].split('"')[1] return version_info print(f"Current JDK Version is {get_jdk_version()}") ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值