jdk1.8 GLIBC依赖问题

时间:2015-10-23 16:55:22

标签: java linux java-8 glibc

我正在使用rhel3和glibc-2.3.2。我正在尝试从JDK5迁移到jdk8,但是像下面那样遇到GLIBC依赖性问题。基本上JDK1.7以后,GLIBC_2.4存在这种依赖关系。

java -version
Error: dl failure on line 883
Error: failed /homes/jdk1.8.0_45/jre/lib/i386/server/libjvm.so, because /lib/tls/libc.so.6: version `GLIBC_2.4' not found (required by /homes/JDK1.8/jdk1.8.0_45/jre/lib/i386/server/libjvm.so)

我无法在当前系统中安装最新的GLIBC,因为其他软件编译需要现有的glibc版本。我该怎么办?

1 个答案:

答案 0 :(得分:0)

  

我无法在当前系统中安装最新的GLIBC,因为其他软件编译需要现有的glibc版本。

你确定吗?除了极少数例外(__ctype_b是我所知道的唯一例外),较新版本的GLIBC是向后兼容的(旧版应用程序继续使用较新的GLIBC版本运行)。

  

我该怎么办?

如果确实无法更新系统glibc,则可以在非默认位置安装较新的glibc,并让JDK使用它。

有关如何执行此操作的一些详细信息,请参阅此answer

另一种方法是使用"显式加载器调用",如下所示:

GLIBC221LIB=/path/to/glibc-2.21/lib
$GLIBC221LIB/ld-linux.so.2 --library-path $GLIBC221LIB \
  /path/to/jdk8/bin/java ...args...

另一个替代方案是升级系统glibc,但将旧的glibc-2.3.2保留在非默认位置,并将与新glibc版本不兼容的(希望很少)应用程序指向旧版本。 / p>