首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >应用程序已由更新版本的Java Runtime (类文件版本55.0)编译,此版本最高可达52.0

应用程序已由更新版本的Java Runtime (类文件版本55.0)编译,此版本最高可达52.0
EN

Stack Overflow用户
提问于 2020-09-21 17:04:29
回答 3查看 5.6K关注 0票数 1

我正在尝试在AWS云中运行docker镜像,所以在本地,使用jdk-11.0.1编译应用程序,并像这样编写docker文件;请注意,我还没有在adoptopenjdk实例中安装任何JDK,因为我已经在最终镜像中包含了adoptopenjdk/ ec2 11:最新镜像。

代码语言:javascript
复制
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之前的类文件版本

EN

回答 3

Stack Overflow用户

发布于 2020-09-21 17:14:11

很可能java是在本地更新的,所以你编译的版本和你想的不一样。或者本地版本不同于adoptopenjdk/openjdk11:latest。

我建议您使用多阶段构建,以便始终使用相同的java版本编译您的类。

如何编写构建阶段取决于您的环境,因此我没有足够的信息来发布示例。但基本上,您需要在构建阶段复制您在本地执行的所有操作。然后,您只需将jar复制到最后一个阶段。这将永远起作用。

票数 1
EN

Stack Overflow用户

发布于 2021-08-28 19:04:32

尝试将您的openjdk版本更改为最新版本,即从: openjdk :12为我工作,因为我正在使用最新的java版本,使用各自的openjdk版本在运行时匹配。

票数 0
EN

Stack Overflow用户

发布于 2021-12-01 07:49:24

为了避免这种问题,建议对图像进行非常具体的说明。

FROM adoptopenjdk/openjdk11:jre-11.0.9.1_1-alpine

对于这种最佳实践,我建议阅读我在寻找解决方案时找到的this文章。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/63989201

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档