我在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时,同样的工作正常。从lib/i386/client
目录加载libjvm.so的位置。欣赏关于在哪里查找原因或此错误的真正含义的任何指示。感谢。
答案 0 :(得分:1)
invalid mode for dlopen()
这是正确的错误:您使用无效模式调用dlopen
。
One of the following two values must be included in flags:
RTLD_LAZY ...
RTLD_NOW ...