CentOS7安装Spring Tool Suite提示JVM terminated.Exit code=127错误怎么办
问题根因
Linux环境下Exit code=127代表程序启动时无法找到依赖的动态链接库,你遇到的问题是CentOS 7默认glibc版本与JDK 16不兼容导致的:
- CentOS 7系统默认自带的glibc最高版本为2.17
- Oracle JDK 16及更高版本要求glibc版本至少为2.18,缺少对应依赖时JVM本身无法正常启动,所以就算你配置了正确的JDK路径,STS和Eclipse的安装程序还是会报相同错误。
可行解决方案
方案1:更换适配CentOS 7的低版本JDK(最稳妥,无系统兼容性风险)
JDK 11 LTS是最后一个原生兼容CentOS 7 glibc 2.17的Oracle长期支持版JDK,操作步骤如下:
- 卸载当前安装的JDK 16
- 安装JDK 11 64位版本,配置好JAVA_HOME和PATH环境变量
- 执行
java -version验证输出正常后,重新修改STS的.ini配置文件指向JDK 11的路径,再启动安装程序即可。
方案2:手动升级CentOS 7的glibc版本(仅推荐测试环境使用,有系统稳定性风险)
如果必须使用JDK 16,可以手动编译升级glibc到2.18及以上版本,操作如下:
# 先安装编译依赖 yum install -y gcc gcc-c++ make bison flex # 下载glibc 2.18源码包后执行解压 tar -zxf glibc-2.18.tar.gz cd glibc-2.18 mkdir build && cd build ../configure --prefix=/usr --disable-profile --enable-add-ons --with-headers=/usr/include --with-binutils=/usr/bin make -j4 make install
升级完成后重启系统,再运行STS安装程序即可。
方案3:升级操作系统
如果可以更换系统,升级到CentOS 8/Stream 9或其他高版本Linux发行版即可,高版本系统默认自带glibc 2.28及以上,原生支持JDK 16及更高版本,是长期使用的最优选择。
内容的提问来源于stack exchange,提问作者bmk
相关产品推荐
相关产品推荐

