【发布时间】:2021-01-07 08:48:53
【问题描述】:
我正在尝试在 AWS 云中运行 docker 映像,因此在本地,使用 jdk-11.0.1 编译应用程序并像这样编写 docker 文件; 请注意,我没有在 AWS ec2 实例中安装任何 JDK,因为我已经在最终图像中包含了采用openjdk/openjdk11:latest 图像..
FROM adoptopenjdk/openjdk11:latest
ADD target/demo-0.0.1-SNAPSHOT.jar app.jar
ENTRYPOINT ["java","-jar","app.jar"]
EXPOSE 8080
1)create the docker image
2)pushed the docker image to docker hub
3)when I run the docker container then getting below error.
线程“main”中的异常 java.lang.UnsupportedClassVersionError: com/example/demo/DemoApplication 已由更新版本的 Java Runtime(类文件版本 55.0)编译,此版本的 Java Runtime 仅识别类文件版本高达 52.0
【问题讨论】:
-
版本 55 是 JDK 11。正如您使用 JDK 11 编译时所期望的那样。版本 52 是 JDK 8。因此,即使您在 Docker 映像中包含了 OpenJDK 11,代码似乎也是使用 JDK 8 运行,因此失败。
-
那有什么解决办法呢?
-
您的 docker 镜像包含 JDK 8 而不是 JDK 11。检查整个 CI/CD 管道以找出问题所在。我很确定上面的代码是正确的,如果在本地构建和运行它会起作用。
标签: spring-boot docker