java loadlibrary_java – 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客户端

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;

String lib = "client";

try {

System.loadLibrary(lib);

found = true;

} catch (UnsatisfiedLinkError e) {

e.printStackTrace();

}

//Try load from LD_LIBRARY_PATH

if (!found) {

lib = "libclient.so";

String ld_lib_path = System.getenv("LD_LIBRARY_PATH");

String[] paths = ld_lib_path.split(":");

for(int i=0; i

String 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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/464591.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

tcp的滑动窗口

今天阅读了TCP中滑动窗口部分的内容,总结如下: 滑动窗口:又叫缓冲区,是两台主机间传送数据时的缓冲区。每台TCP/IP主机支持两个滑动窗口:一个用于接收数据,另一个用于发送数据。 窗口尺寸表示计算机可能缓…

嵌入式行业那些坑与出路

嵌入式的坑烧钱嵌入式的学习十分烧钱,这就让人有点望而却步。我是做DSP起步的,更是能体会到嵌入式绝对是一个拿钱搭梯子的学习行业。在我的学习过程中身边有不少的人投向了CS行业,也就是纯软件开发,比如网页、手机应用、数据库等。…

入行后第二份工作的一些感悟

这是我毕业后进入的第二家公司。也是我工作的第二个年头。转眼之间在新公司已经度过半年的时间了。内心还是有些许的感慨。 工作的内容和上家公司是差不多的,主要是做windows方面的基础架构和应用的维护,例如AD、exchange、lync、ISA、虚拟化等等&a…

poj2631

求一棵树的直径,所谓直径就是树上距离最远的两个点! 树形动归,每个点的为根的子树的最长向下链和次长链的和! 当然也可以二次深搜! ————————————————————————————————————————…

原来做的一个语义搜索软件的界面

今天得知NGW(New Generation Web,关于语义网络方面的)课程及实验作业成绩已公布,急去查看,但与想象中相去甚远。 罢了,凡事但求尽力而为,末了问心无愧即可,其它种种皆是虚幻。 附&am…

tcp为什么需要3次握手和3次握手的过程

网络上关于tcp连接时的3次握手相关的文章很多,在此不再重复,个人总结如下,如有不正确之处请给予指正。 tcp“三次握手”的目的是: 为了防止已经失效的请求报文段突然又传送到了服务器端,因而产生错误。 tcp的3次握手过程: (1)、…

C使用FILE指针文件操作

文件 文件的基本概念 所谓“文件”是指一组相关数据的有序集合。这个数据集有一个名称,叫做文件名。例如源程序文件、目标文件、可执行文件、库文件 (头文件)等。文件通常是驻留在外部介质(如磁盘等)上的,在使用时才调入内存中来。从不同的角度可对文件作…

java 守护线程 run_java守护线程(后台线程)

/*1.让各个对象或类相互灵活交流2.两个线程都冻结了,就不能唤醒了,因为根据代码要一个线程活着才能执行唤醒操作,就像玩木游戏3.中断状态就是冻结状态4.当主线程退出的时候,里面的两个线程都处于冻结状态,这样就卡住了…

2年质保期刚过就翘辫子,这是什么骚设计?

1.终于又坏了一件自从开始写聊聊身边的嵌入式这个系列,便常常有一个邪恶的想法在脑袋里盘旋,总盼着家里哪件电器赶紧出点毛病。你知道,如果不把一个东西拆的七零八落,覆水难收,那是不能满足咱们的好奇心的。都说念念不…

剑指offer---用两个栈实现队列

题目:用两个栈实现队列 要求:用两个栈来实现一个队列,完成队列的Push和Pop操作。 队列中的元素为int类型。 1 class Solution2 {3 public:4 void push(int node) {5 6 }7 8 int pop() {9 10 } 11 12 priva…

Java内存泄露原因详解

一、Java内存回收机制 不论哪种语言的内存分配方式,都需要返回所分配内存的真实地址,也就是返回一个指针到内存块的首地址。Java中对象是采用new或者反射的方法创建的,这些对象的创建都是在堆(Heap)中分配的&#xff0…

java时间戳版本号_maven 自动编译版本号 buildnumber-maven-plugin 1.4

最近新项目要需要更新发布版本号,用于标识发布的版本,网上找了下插件:buildnumber-maven-plugin 1.4 。记录下自己使用成功过程中遇到的各种问题,以供需要的朋友参考:插件官方网站:http://www.mojohaus.org…

如何分割合并ISO文件

今天打算在电脑上装Androd系统,谷歌考虑到了这方面的需求,特意制作了liveandroidv0.3.iso操作系统的镜象文件供开发人员下载。没有人愿意为了装这个系统而把原先的系统换掉,许多人也只是想玩票一下。这样就只能用虚拟机安装了,虚拟…

推荐Linux内核书籍

大家好,挺久没推荐内核相关的书籍了,今天给大家推荐一本我觉得不错的书,这本书籍的作者叫做李云华,书籍名字叫《独辟蹊径品内核》,他的写作思路非常不错,他会引用内核代码中的内容,给大家剖析讲…

3个Gmail 邀请,先进先出!!

3个Gmail 邀请,先进先出!!转载于:https://www.cnblogs.com/zhangqh/archive/2005/01/27/98222.html

互联网公司的项目经理:客户伤不起

互联网公司的项目经理:客户伤不起 前面《互联网公司的项目经理:大同与大不同》谈到了互联网公司的项目经理面对的客户和传统软件公司的不同,主要表现在客户与项目经理是同一组织内的、是和你一个战壕共同战斗的,很多情况甚至荣辱与…

java照片墙_基于jQuery实现照片墙自动播放特效

一个动态展示图片的页面:功能:定时从后台取数据,进行页面图片追加。对已经在页面中的图片,进行放大缩小动画展示。目前我们用于微信新关注用户头像展示。抽奖body{background-color:#000;text-transform:uppercase;color:#fff;pos…

位运算实现四则运算(C++实现)

前言 Leetcode中有一道这样的题:给定两个整数,被除数 dividend 和除数 divisor。将两数相除,要求不使用乘法、除法和 mod 运算符。返回被除数 dividend 除以除数 divisor 得到的商。 如果正常的四则运算符号不允许使用,呢这道题的考点我觉得应…

使用croc命令在Linux系统电脑之间传输文件和文件夹

‍在两台或多台计算机之间传输文件的方法有很多。‍你可以使用基于服务器的文件共享工具,点对点文件共享app,U盘,外部硬盘驱动器,SCP,NFS,FTP,HTTP,云存储平台等等。本文将介绍一个名…

Lady Bird

La Ballade of Lady Bird[Lady Bird]Bird : Lady? Lady : Yes Bird? Bird : Its cold Lady : I know Lady : Bird... I cannot see a thing Bird : Its all in your mind Lady : Im worried Bird : No one will come to see us Lady : Maybe they come but we just dont see …