Tag: loadlibrary

System.loadLibrary不起作用。 链中的第二个lib的UnsatisfiedLinkError

我有通过JNI使用cpp共享库libclient.so的java程序Client.class。 libclient.so构建为共享并使用cpp共享库libhttp.so。 libclient.so和libhttp.so放在文件夹/home/client/lib64 Client.class放在/home/client/bin 客户端可以加载库 System.load和环境变量LD_LIBRARY_PATH System.loadLibrary和-Djava.library.path 第一种方式很好。 export LD_LIBRARY_PATH = /home/client/lib64 java -classpath ./bin客户端 secon方式失败了。 java -classpath ./bin -Djava.library.path=./../lib64 Client java.lang.UnsatisfiedLinkError: /home/client/lib64/libclient.so: libhttp.so: cannot open shared object file: No such file or directory 当我将libhttp.so放入/ usr / lib64时,第二种方式可以正常工作。 如果我使用System.loadLibrary,为什么libclient.so在/ usr / lib64中寻找libhttp.so? 如何在不将libhttp.so复制到/ usr / lib64的情况下修复它? 我的加载代码: //Try load from -Djava.library.path boolean found = false; […]