构建Jar遇Class文件版本错误:62.0需为57.0,求适配Java版本建议
问题分析
Class文件版本与JDK版本对应关系:
- 62.0 → Java 18
- 57.0 → Java 13
你遇到的错误是因为:Copier类是用Java 18编译生成的(对应字节码版本62.0),但当前项目的构建环境要求兼容Java 13的字节码(57.0)。虽然你的系统JDK是18,但项目编译配置可能强制指定了更低的目标版本,导致高版本字节码无法被识别。
适配的Java版本
有两种可行方向:
- 降级到Java 13:如果项目整体依赖均基于Java 13,更换系统JDK为Java 13即可兼容字节码要求。
- 保留Java 18:调整项目编译配置,将目标字节码版本提升至62.0(对应Java 18),匹配Copier类的版本。
解决建议
方案一:调整编译配置(推荐,无需更换JDK)
若使用Maven
修改项目根目录下的pom.xml,更新maven-compiler-plugin的source和target参数为18:
<build> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <version>3.11.0</version> <configuration> <source>18</source> <target>18</target> <encoding>UTF-8</encoding> </configuration> </plugin> </plugins> </build>
修改后执行mvn clean install重新构建。
若使用Gradle
修改项目根目录下的build.gradle(Groovy语法):
java { sourceCompatibility = JavaVersion.VERSION_18 targetCompatibility = JavaVersion.VERSION_18 }
或Kotlin DSL格式的build.gradle.kts:
java { sourceCompatibility = JavaVersion.VERSION_18 targetCompatibility = JavaVersion.VERSION_18 }
修改后执行gradle clean build重新构建。
方案二:降级系统JDK至Java 13
- 下载OpenJDK 13的安装包并完成安装。
- 配置系统环境变量:将
JAVA_HOME指向Java 13的安装目录,同时调整PATH让Java 13的bin目录优先级最高。 - 验证版本:执行
java -version和javac -version,确认输出为Java 13相关信息。 - 重新执行项目构建命令。
额外排查点
确认Copier类是你修改后编译的文件,还是项目依赖的第三方库:
- 如果是第三方库,检查该库是否有适配Java 13的版本;若库本身要求Java 18,则优先选择方案一调整编译配置。
内容的提问来源于stack exchange,提问作者Shaitender Singh
相关产品推荐
相关产品推荐

