【问题标题】:Java symbol lookup error: /usr/lib64/jvm/java-11-openjdk-11/lib/libnio.so: undefined symbol: initInetAddressIDsJava 符号查找错误:/usr/lib64/jvm/java-11-openjdk-11/lib/libnio.so:未定义符号:initInetAddressIDs
【发布时间】:2020-02-26 13:03:18
【问题描述】:

我在 suse linux 服务器中使用 openjdk-11。当我尝试使用 -64bit 标志运行我的 cpp 构建时,出现此错误:

Java 符号查找错误:/usr/lib64/jvm/java-11-openjdk-11/lib/libnio.so:未定义符号:initInetAddressIDs

这是我的 ldd 警告:

你没有执行权限`/usr/lib64/jvm/java-11-openjdk/lib/libnio.so' linux-vdso.so.1 (0x00007fff32bd7000) libjava.so => /usr/lib64/ jvm/java-11-openjdk/lib/libjava.so libnet.so => /usr/lib64/jvm/java-11-openjdk/lib/libnet.so libpthread.so.0 => /lib64/libpthread.so。 0 libdl.so.2 => /lib64/libdl.so.2 (0x00007f73ee49e000) libc.so.6 => /lib64/libc.so.6 (0x00007f73ee0e4000) libjvm.so => 未找到 libverify.so => / usr/lib64/jvm/java-11-openjdk/lib/libverify.so /lib64/ld-linux-x86-64.so.2

我不是 Java 程序员,不知道在这里做什么。有人可以帮我走出这个坑吗?

【问题讨论】:

  • 你可以尝试运行ldd /usr/lib64/jvm/java-11-openjdk-11/lib/libnio.so 并发布输出吗?
  • ldd:警告:您没有执行权限 `/usr/lib64/jvm/java-11-openjdk/lib/libnio.so' linux-vdso.so.1 (0x00007fff32bd7000) libjava .so => /usr/lib64/jvm/java-11-openjdk/lib/libjava.so libnet.so => /usr/lib64/jvm/java-11-openjdk/lib/libnet.so libpthread.so.0 => /lib64/libpthread.so.0 libdl.so.2 => /lib64/libdl.so.2 (0x00007f73ee49e000) libc.so.6 => /lib64/libc.so.6 (0x00007f73ee0e4000) libjvm.so = > 未找到 libverify.so => /usr/lib64/jvm/java-11-openjdk/lib/libverify.so /lib64/ld-linux-x86-64.so.2
  • @nullPointer 粘贴了上面的 ldd 输出

标签: java shared-libraries 64-bit suse undefined-symbol


【解决方案1】:

您的 ldd 输出表明缺少 libjvm.so。 尝试在您的 OpenJDK 路径中找到此文件(尝试查看 /jre/lib/amd64/server/ ),然后尝试将此路径添加到 $LD_LIBRARY_PATH

【讨论】:

  • 非常感谢@nullPointer .. 它奏效了。我刚刚将 libjvm.so 添加到 LD_LIBRARY_PATH。它在 /usr/lib64/jvm/java-11-openjdk-11/lib/server/libjvm.so 路径中.. :)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-06-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-06-21
  • 2014-04-07
相关资源
最近更新 更多