Linux上的jar包冲突问题

记录一下问题,留下曾经的痕迹。

       某天在新机子上搭建了新的游戏服务器,运行一段时间后发现有玩家反馈某些功能用不了,赶紧把日志拉下来看看,发现是有类方法找不到(java.lang.NoSuchMethodError)。把加载的jar包对了一遍,发现有两个同名不同版本的jar包,低版本的jar包确实没该方法,那就是jar包冲突了。

       那报错问题就找到了,但是还有一个奇怪的问题就是在之前其他机子上已经搭建的服务器并没有出现这个错误,为何有的机子上出现,有的机子上没出现呢?带着这个问题网上查询了下是否有其他人遇到这样的问题。只有比较少的人遇到了这种状况,而且都没有比较好的找到问题根源。通过jinfo命名查看了下进程启动时的信息,发现问题机子和没问题机子的jar包加载顺序的是不一样的,而linux上jar包的加载顺序决定于其文件系统给文件分配的inode值大小,机子的系统环境基本都是一致的,相同上传过程理论上文件生成次序应该是一致的,不过从实际看来不同机子linux给上传的jar包的inode值大小顺序是不一定的,可能跟上传工具有关,如果是同时多任务上传就可能是这种问题,后来跟运维确认了应该就是这种问题。疑问解决了,感觉轻松了不少。

总结:因为一直没出现问题而忽略有jar包冲突的情况是非常危险的事情,一旦环境稍有改变问题就可能爆发,所有以后对jar包的添加审核必须谨慎

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值