如何解决Docker环境下Java14项目运行报UnsupportedClassVersionError错误的问题
问题根因
你在Maven编译配置中仅开启了编译阶段的预览特性支持,但Java的预览特性要求编译、运行两个阶段都添加--enable-preview参数才能正常工作,当前Dockerfile中启动jar的java命令没有携带该参数,因此启动时报类版本不支持错误。
解决方法
修改你的Dockerfile中的ENTRYPOINT配置,添加--enable-preview启动参数:
# 原来的ENTRYPOINT # ENTRYPOINT ["java","-jar","/app.jar"] # 修改后 ENTRYPOINT ["java","--enable-preview","-jar","/app.jar"]
修改完成后重新构建镜像即可正常启动容器。
额外注意事项
- 可以先在本地环境执行
java --enable-preview -jar 你的jar包路径验证功能正常,再进行Docker镜像构建,减少排查成本 - 后续如果将Java版本升级到对应预览特性正式发布的版本,可同时移除Maven编译配置和启动命令中的
--enable-preview参数
内容的提问来源于stack exchange,提问作者kamil wilk
相关产品推荐
相关产品推荐

