You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

运行Maven JLink插件遇Unsupported class file major version 61错误求助

解决Maven JLink插件报Unsupported class file major version 61错误的方案

核心原因

版本61对应Java 17,这个错误说明maven-jlink-plugin执行时依赖的JDK版本低于17——哪怕项目JDK和compiler插件配置正确,插件自身的运行环境可能没跟上。

具体排查&修复步骤

  • 确认Maven运行时的JDK版本
    执行mvn --version,重点看Java version和Java home字段,必须指向BellSoft Liberica 17。如果显示低版本:

    • 检查系统JAVA_HOME环境变量,确保指向Liberica 17路径
    • 确认IDE中Maven运行配置的JRE是「使用项目JDK」,且项目JDK确实是17
    • 终端执行java -version验证当前生效的JDK版本
  • 升级maven-jlink-plugin版本
    3.1.0版本对Java 17的兼容存在问题,建议升级到3.2.0及以上,pom.xml修改如下:

    <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-jlink-plugin</artifactId>
        <version>3.2.0</version>
        <!-- 保留原有其他配置 -->
    </plugin>
    
  • 补全compiler插件配置
    除了<release>17</release>,明确指定source和target,避免编译输出的class文件版本异常:

    <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-compiler-plugin</artifactId>
        <version>3.11.0</version>
        <configuration>
            <source>17</source>
            <target>17</target>
            <release>17</release>
            <encoding>UTF-8</encoding>
        </configuration>
    </plugin>
    
  • 清理后重新构建
    执行命令彻底清理缓存,避免旧编译文件干扰:

    mvn clean install
    

    如果在IDE中运行,先执行mvn clean,再重启IDE刷新配置。

  • 排查依赖的class文件版本
    确保第三方依赖没有用高于Java 17的版本编译(比如Java 18对应版本62),可以用javap -v <类文件路径> | grep major查看依赖jar中类的版本。

补充

如果以上步骤无效,提供完整的mvn --version输出和堆栈跟踪日志,能更精准定位问题(比如插件依赖的JDK版本冲突)。

内容的提问来源于stack exchange,提问作者wouterio

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.12 18:43:08