Chinaunix首页 | 论坛 | 博客
  • 博客访问: 173099
  • 博文数量: 60
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 466
  • 用 户 组: 普通用户
  • 注册时间: 2013-09-08 21:46
个人简介

我是个笨蛋

文章分类

全部博文(60)

文章存档

2015年(22)

2014年(20)

2013年(18)

我的朋友

分类: 其他平台

2015-06-09 21:08:43

工程scanserver
cd scanserver
1.编写ImageProcess.java,eclipse自动编译生成class文件放到build/classes文件夹下

2.生成javah文件,由于是自己配置的jdk
cd jni
sudo /usr/lib/jvm/jdk1.8.0_45/bin/javah -classpath ../build/classes com.dcode.imageserver.jni.ImageProcess
生成.h文件放置在了jni文件夹下

3.编写C源文件imageScan.cpp,实现native方法,imageScan.cpp放置在了jni文件夹下

4.将用到其它头文件及C++源文件放置在jni文件下
common.h   dcode.h   dcode.cpp
sudo g++ -shared -fPIC -I /usr/lib/jvm/jdk1.8.0_45/include -I /usr/lib/jvm/jdk1.8.0_45/include/linux imageScan.cpp dcode.cpp -o libimageScan.so
5.此时在调用时会报Exception in thread "main" java.lang.UnsatisfiedLinkError: no imageScan in java.library.path
需要将上面生成的libimagescan.so文件的路径加入Native library location
右键工程 --> 属性 --> Libraries --> 点开JRE System Library --> NativeNative library location --> 选中Edit --> 加入libimagescan.so所在的目录

对于java工程这样可以,但是对于dynamic web project不行,只好在ImageProcess.java里边加上
static {
    System.out.println(System.getProperty("java.library.path"));
    System.loadLibrary("imageScan");
}
打印出library path,然后将libimageScan.so拷贝到某一路径下。

6.可以使用啦
阅读(1153) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~