AIX:;java.lang.UnsatifiedLinkError“;但图书馆是存在的
我使用JNI从java代码中调用名为“libmy_JNI.so”的共享库。这些在其他操作系统中运行良好,没有任何问题,但在AIX中,我看到以下错误。我已经检查了LIBPATH和LD_LIBRARY_PATH(在case中)是否设置正确,并将x86模块与32位java(以及x64与64位java)匹配 加载库的java代码是AIX:;java.lang.UnsatifiedLinkError“;但图书馆是存在的,java,unix,java-native-interface,aix,Java,Unix,Java Native Interface,Aix,我使用JNI从java代码中调用名为“libmy_JNI.so”的共享库。这些在其他操作系统中运行良好,没有任何问题,但在AIX中,我看到以下错误。我已经检查了LIBPATH和LD_LIBRARY_PATH(在case中)是否设置正确,并将x86模块与32位java(以及x64与64位java)匹配 加载库的java代码是 File sofile = new File("libmy_jni.so"); if(!sofile.exists()) { System.out.prin
File sofile = new File("libmy_jni.so");
if(!sofile.exists())
{
System.out.println("can't find the moudle.");
System.exit(1);
}
System.loadLibrary("my_jni");
据我所知,导致上述错误的大多数情况是不正确的库路径或不匹配的32/64位体系结构。但就我而言,我不知道原因是什么
>>file libmy_jni.so
libmy_jni.so: 64-bit XCOFF executable or object module not stripped
这可能是libmy_jni的一个依赖项吗?那么这就不存在了?在Linux上,您可以使用ldd进行检查。不知道AIX的等价物是什么。请尝试以下选项:
-Djava.library.path=。
>>file libmy_jni.so
libmy_jni.so: 64-bit XCOFF executable or object module not stripped