使用旧版 GLIBC 运行 Java 时出现分段错误

使用旧版 GLIBC 运行 Java 时出现分段错误

我正在尝试运行Java 1.7.0_21-b11。Java GLIBC 2.3.67 至少需要GLIBC 2.4

我试过了解决方案,因此使用 ldd,我发现了以下依赖项:

ld-2.7.so
ld-linux.so.2
libc.so.6
libdl.so.2
libpthread.so.0

我从类似但较新的系统(均为 Slackware)复制了这些文件(以及ld-2.7.so),并尝试使用预加载的库来调用 java,但出现了段错误:

$ LD_PRELOAD="./ld-linux.so.2 ./libc.so.6 ./libd l.so.2 ./libpthread.so.0" ./ld-2.7.so /usr/lib/java_new/bin/java
Segmentation fault

我有点困惑,所以如果能提供任何关于如何进行的建议我将非常感激。

答案1

我遇到了同样的问题——在运行旧 Ubuntu 的构建服务器上运行 Java。

我已将所有必需的库安装在一个文件夹中,并使用 LD_LIBRARY_PATH 指向它们。但它不起作用。我认为问题在于 glibc 与内核不兼容。

解决方案是安装新的 Linux 发行版并将构建服务器迁移到新的 Ubuntu。

相关内容