16boke - 一路博客

JNI Linux平台(包、解决中文路径乱码、数组传入、传出)

    以C++实现读写文件,Java调用为例。包括中文路径的传递和数组的传入传出。

1.环境准备

    保证Java代码能够正确编译运行(安装JDK,正确配置环境变量)

    保证C++代码能够正确编译(安装gcc)

    文件目录结构

    /JNI/com/yiluboke/zxy/WriteReadJ.java

    /JNI/WriteReadC++

2.编写java代码(参见JNI Windows平台)

3.编译Java代码,生成class文件

    在/JNI目录下

    javac ./com/yiluboke/zxy/WriteReadJ.java,在该java文件所在目录下生成WriteReadJ.class文件。

    

4.生成.h文件

    在/JNI目录下

    javah -jni com.yiluboke.zxy.WriteReadJ,在当前目录下生成com_yiluboke_zxy_WriteReadJ.h文件

    

5.编写C++代码,并编译成so文件(参见JNI Windows平台)

    

6.运行java文件

    在/JNI目录下

    java com.yiluboke.zxy.WriteReadJ

    

7.完整Demo下载

    百度网盘地址:http://pan.baidu.com/s/1c0Rbj4s

    本文采用的JDK是 64位版本1.7.0_79。

    

注意事项:

    Linux的链接规定:一个库的必须要是:lib+库名+.so。链接的时候只需要提供库名就可以了。

运行错误:

    

    java.lang.UnsatisfiedLinkError:no XXX in java.library.path异常。

    修改/etc/profile

    增加export LD_LIBRARY_PATH=/JNI

JNI  Java