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

构建Docker镜像遇版本错误:class文件版本65.0不符合62.0要求

问题分析与解决方案

核心问题

你遇到的class文件版本65.0,应为62.0错误,本质是Java版本不兼容:

  • 本地用Java 21(对应class文件版本65)编译了代码
  • Docker里的openjdk基础镜像默认拉取的是Java 17(对应class版本62),低版本JVM无法运行高版本编译的class文件

修复步骤

1. 指定Java 21的基础镜像

修改Dockerfile的第一行,明确使用Java 21的镜像:

# 推荐使用eclipse-temurin镜像,维护更稳定
FROM eclipse-temurin:21-jdk

COPY . /app/
WORKDIR /app
RUN javac Main.java
# 注意:Java类名区分大小写,主类是Main不是main
CMD ["java", "Main"]

如果坚持用官方openjdk镜像,也可以写FROM openjdk:21

2. 修正类名大小写问题

你的CMD指令里写的是java main,但Java类名严格区分大小写,你的主类是Main,必须改成java Main,否则会报找不到主类的错误。

3. 进阶优化(可选)

用多阶段构建减小镜像体积,编译阶段用JDK,运行阶段用更轻量化的JRE:

# 第一阶段:编译代码
FROM eclipse-temurin:21-jdk AS builder
COPY . /app/
WORKDIR /app
RUN javac Main.java

# 第二阶段:运行代码
FROM eclipse-temurin:21-jre
COPY --from=builder /app/*.class /app/
WORKDIR /app
CMD ["java", "Main"]

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.20 18:12:01