使用GCP的Kubernetes部署项目时出现的编译问题
问题记录:
最近在google云平台使用Kubernetes进行服务打包部署时,项目日志中频繁出现
java.lang.NoSuchMethodError: java.nio.ByteBuffer.flip()Ljava/nio/ByteBuffer
的报错,一直没能查出是什么原因,在本地环境运行是没有问题的,打包放到云上Kubernetes的pod中运行就报这个错。
后来搜索到了类似的一个提问:https://stackoverflow.com/questions/61267495/exception-in-thread-main-java-lang-nosuchmethoderror-java-nio-bytebuffer-flip
主要意思就是说代码编译时的jdk版本和实际运行中的jdk版本不一致。
我使用的是openjdk8的基础镜像,然后再在其基础上运行的spring boot。
但是,由于我为了图省事,直接在GCP控制台上的cloud shell 环境,使用自己写的一个脚本进行 代码拉取,mvn打包,docker镜像构建,镜像上传,以及replicationController创建等一系列操作,后来发现,google 云的Cloud shell 环境的jdk版本是 11 的。。。
所以就导致的如上的运行异常。
这里需要有个潜意识,一般看到类似NoSuchMethodError 的错误的时候,就要意识到有可能是 Java 编译版本的问题。
本文版权归作者和博客园共有,转载请在文章页面明显位置标明原文链接。
【推荐】还在用 ECharts 开发大屏?试试这款永久免费的开源 BI 工具!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 从二进制到误差:逐行拆解C语言浮点运算中的4008175468544之谜
· .NET制作智能桌面机器人:结合BotSharp智能体框架开发语音交互
· 软件产品开发中常见的10个问题及处理方法
· .NET 原生驾驭 AI 新基建实战系列:向量数据库的应用与畅想
· 从问题排查到源码分析:ActiveMQ消费端频繁日志刷屏的秘密
· 《HelloGitHub》第 108 期
· Windows桌面应用自动更新解决方案SharpUpdater5发布
· 我的家庭实验室服务器集群硬件清单
· C# 13 中的新增功能实操
· Supergateway:MCP服务器的远程调试与集成工具