Linux下Java调用so文件
2015-09-08 15:39
260 查看
尝试了一下在linux下Java调用so文件。需要注意以下几点:
1,在linux下调用的so文件的格式必须是linux的,而不是x86或其他。
2,linux打包的so文件的位数必须和本机JVM的位数一样,都是32位或都是64位,JVM位数可以通过java -version查看。如果位数不一致就会报以下错误:wrong ELF class: ELFCLASS64 (Possible cause: architecture word width mismatch)
3,so包path要配置好。如果没配置好就会报以下错误:java.lang.UnsatisfiedLinkError: no *** in java.library.path
可以用 System.out.println("java.library.path:"+System.getProperty("java.library.path")) 来看path是什么。出现错误的原因是java path中找不到so包。解决办法有2个。
1,把so包cp到对应的path中。
2,在命令行中定义so包的path。
export LD_LIBRARY_PATH=/**/*/** (so所在的目录)
只在当前shell下有效...
4,开始使用了,在JAVA开头中load一下。
System.loadLibrary("stockocr");
so文件的全名是libstockocr.so。注意linux下load时需要去掉lib和so。
1,在linux下调用的so文件的格式必须是linux的,而不是x86或其他。
2,linux打包的so文件的位数必须和本机JVM的位数一样,都是32位或都是64位,JVM位数可以通过java -version查看。如果位数不一致就会报以下错误:wrong ELF class: ELFCLASS64 (Possible cause: architecture word width mismatch)
3,so包path要配置好。如果没配置好就会报以下错误:java.lang.UnsatisfiedLinkError: no *** in java.library.path
可以用 System.out.println("java.library.path:"+System.getProperty("java.library.path")) 来看path是什么。出现错误的原因是java path中找不到so包。解决办法有2个。
1,把so包cp到对应的path中。
2,在命令行中定义so包的path。
export LD_LIBRARY_PATH=/**/*/** (so所在的目录)
只在当前shell下有效...
4,开始使用了,在JAVA开头中load一下。
System.loadLibrary("stockocr");
so文件的全名是libstockocr.so。注意linux下load时需要去掉lib和so。
相关文章推荐
- 每天一个linux命令---curl
- Linux 命令行快捷键
- CentOS下下载软件,不安装的方法
- Linux下查看和添加PATH环境变量
- Centos7 安装kilo-1 总览
- CentOS6.5升级为CentOS7.0
- Linux运维汇总笔记
- Linux Top 命令解析 比较详细
- 关于linux文件下库的链接问题 openssl pcre
- 把linux的man手册转化为windows下可读的格式
- 25-linux中的任务调度命令
- Linux说明书 - man浅谈
- 查询linux 下文件夹多少个文件
- Centos opencv3.0 ffmpeg 的兼容性
- Linux文件系统管理
- Linux NTP配置详解 (Network Time Protocol)
- 9月5日 linux任务计划作业
- Linux日志系统学习!!!
- linux服务器报警之利用Java邮件报警
- Linux Virtual Server负载均衡 ipvsadm使用方法