工程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) |