求助!java jni在liunx下提示no in java.library.path 20C

已经放到java.library.path下了,用System.out.println(System.getProperty("java.library.path"));打印结果为/home/heiman/workspace/common-utils/lib;/usr/local/maven/maven3.5.2//bin:/usr/local/java/bin:/usr/local/java/jre/bin:/usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/games,so库放在了/home/heiman/workspace/common-utils/lib下,但是加载不到 求助大神!急!!!!

6个回答

可以加载so的时候,自己拼接完整路径

感觉是你的jdk版本不一样,比如说jdk是32位的,操作系统是64位的

右键Java工程”JNItest“,选择菜单”Build Path——Configure Build Path...“,在弹出配置页面展开”JRE System Library[JavaSE-1.7]“,java版本每人电脑可能不同。双击”Native library location:(None)“,在弹出的”Native Library Folder Configuration“页面,填写动态链接库位置。
http://blog.csdn.net/ywb201314/article/details/51648164

//假设你的规格输入框id是extend12,下拉框id是contract_kind
function onContractChange(contractData) {
$.("#extend12").val(contractData);
}

这需要外部加载!或者你不存在这库要外部下载进去或者是你的路径不对

so加载需要指明路径.个人想到几种使用方式

  1. 使用环境变量,即放在特定目录下(其实未必要复制,建立软链接即可),你完全可以使用任何名称的环境变量,只要在源码中读出变量值,然后寻找文件即可
  2. 使用运行时参数指定,即将绝对路径作为参数传入
  3. 使用绝对路径,即在源码中使用绝对路径

顺便一提,java加载动态库貌似只有两个API
其一, System.loadLibrary(), 参数好像是库名,即去掉lib前缀和.so*后缀
其二, System.load(),参数是绝对路径,相对路径好像不可以

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问
相关内容推荐