【发布时间】: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 ...>
【问题讨论】: