dlopen 在 Rhel 7.2 上失败,64 位为 libjvm.so



我在 64 位 Java 进程中调用 RHEL 64 上的 dlopen ("libjvm.so", RTLD_NOLOAD)。 并且失败并显示错误:

 libjvm.so: invalid mode for dlopen(): Invalid argument

我做了lsof -p <pid of java process>,它 libjvm.so 显示为加载的模块。 libjvm.so 从路径 jre1.8.0_121/lib/amd64/server/libjvm.so 加载。无法找到有关该错误的更多信息。使用 32 位版本的 java 时,同样的事情可以正常工作。从目录中加载 libjvm.so 的位置lib/i386/client。感谢有关在哪里查找原因或此错误真正含义的任何指示。谢谢。

invalid mode for dlopen()

这是正确的错误:您以无效模式调用了dlopen

从 dlopen 手册页

One of the following two values must be included in flags:
   RTLD_LAZY ...
   RTLD_NOW  ...            

最新更新