【问题标题】:64-bit java glibc dependency, not compatible [duplicate]64位java glibc依赖,不兼容[重复]
【发布时间】:2016-12-09 03:55:02
【问题描述】:

有人可以给我一些关于如何解决这个java程序的建议吗?太感谢了。 我需要在 64 位 java 和 64 位 CentOS 系统上运行,但该程序与我的 glibc-2.14 库不兼容。我手动构建了这个 glibc 库并将其添加到我的 LD_LIBRARY_PATH 中,因为我没有 ROOT 权限,并且我需要该库用于其他一些程序。

我可以成功运行32位版本:

[gmswenm@login-7-0 ~]$ java -version
java version "1.8.0_92"
Java(TM) SE Runtime Environment (build 1.8.0_92-b14)
Java HotSpot(TM) Server VM (build 25.92-b14, mixed mode)

但我的管道需要 64 位 java,当我使用相同的命令运行 64 位版本时,命令会卡住。当我从链接路径中删除glibc时,它可以顺利运行,但是我无法运行其他程序,非常伤心。

64位java的strace信息在这里,谢谢:

[gmswenm@login-7-0 ~]$ strace jdk1.8.0_92/bin/java -version:

execve("jdk1.8.0_92/bin/java", ["jdk1.8.0_92/bin/java", "-version"], [/* 120 vars */]) = 0
brk(0)                                  = 0x980000
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7f643e655000
readlink("/proc/self/exe", "/home//jdk1.8.0_92/bin/java", 4096) = 34
access("/etc/ld.so.preload", R_OK)      = -1 ENOENT (No such file or directory)

futex(0x7f643ca249d0, FUTEX_WAIT, 11029, NULL <unfinished ...>

【问题讨论】:

    标签: java linux 64-bit glibc


    【解决方案1】:

    This answer 解释了为什么不能简单地将LD_LIBRARY_PATH 设置为指向不同的 GLIBC,以及如何实现所需的结果。

    【讨论】:

    • 太好了,非常感谢,它成功了!!!
    猜你喜欢
    • 2010-10-21
    • 2023-03-30
    • 1970-01-01
    • 1970-01-01
    • 2013-03-12
    • 1970-01-01
    • 1970-01-01
    • 2021-05-14
    • 2020-06-09
    相关资源
    最近更新 更多