网站建设国际深圳,奥迪网站建设策划书,蓝色通用营销型企业网站模板,茂名网站建设价格我有通过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_LIBRAR…我有通过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 / lib64java -classpath ./bin客户端secon方式失败了.java -classpath ./bin -Djava.library.path ./ .. / lib64客户端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.pathboolean found false;String lib client;try {System.loadLibrary(lib);found true;} catch (UnsatisfiedLinkError e) {e.printStackTrace();}//Try load from LD_LIBRARY_PATHif (!found) {lib libclient.so;String ld_lib_path System.getenv(LD_LIBRARY_PATH);String[] paths ld_lib_path.split(:);for(int i0; iString p paths[i];File x new File(p, lib);if (x.exists()) {System.load(x.getAbsolutePath());found true;break;}}}附加信息.如果我用ldd测试libclient.so,那么我看到libhttp.so 未找到如果我设置export LD_LIBRARY_PATH / home / client / lib64,那么我看到libhttp.so /home/client/lib64/libhttp.so