JDK 1.6无法在Centos 7.9上面执行java命令

情况描述:

一台旧的centos 5的java应用需要迁移到centos7.9 上面,拷贝JDK 1.6 过来后,发现执行java命令报错

初步分析:

1、缺少库包:
bash: ./java: /lib/ld-linux.so.2: bad ELF interpreter: No such file or directory
2、尝试安装缺少的库文件
yum install -y /lib/ld-linux.so.2
# 发现centos7.9 yum 不提供这个库文件
3、从旧的机器上面拷贝这个库文件过来 (不推荐
lrwxrwxrwx 1 root root 14 Aug 16 10:58 /lib/ld-linux.so.2 -> /lib/ld-2.5.so
4、再次执行
bash: ./java: Permission denied
5、怀疑是权限问题,貌似root用户都不能执行,那应该没啥权限问题
6、考虑是新拷贝过来的库文件权限异常,发现拷贝过来的库文件没有执行权限,添加执行权限
# 修改权限
chmod 0755 /lib/ld-2.5.so
# 查看文件状态
stat /lib/ld-2.5.so
7、发现新的库文件依赖问题
./java: error while loading shared libraries: libpthread.so.0: cannot open shared object file: No such file or directory
8、换了台centos7.7 发现yum 能提供/lib/ld-linux.so.2
centos7.7 # yum provides /lib/ld-linux.so.2
glibc-2.17-292.el7.i686
centos7.7 # yum install -y /lib/ld-linux.so.2
9、centos 7.7 能正常执行jdk 1.6 的java命令

总结:

1、主要是centos 7.9 yum没有/lib/ld-linux.so.2导致走了弯路,估计是不兼容这个32位的库包了,没深究

2、另外拷贝文件,需要注意源文件的文件权限,时间长了不好找原因

3、如果系统跨大版本,需要考虑兼容性问题,通过yum能避免一些兼容性的问题,并尝试降低版本缩小版本差距试试
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值