mac编译jni 调用java

来源:互联网 发布:阿里云收费 编辑:程序博客网 时间:2024/06/05 18:29


jni基础网上很多在此不提。

配置:10.9.1系统,jdk1.7.0_45

1.mac系统自带jdk1.6,查找不到jni库文件,于是自装jdk1.7(官网下载),jdk1.6没删

2.装好后终端输入命令java -version,没问题就会显示此时版本为1.7

3.pico .bash_profile输入如下命令:

export JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk1.7.0_45.jdk/Contents/Home

export PATH=$JAVA_HOME/bin:$PATH

export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar

然后control+x退出保存

4.终端输入:cd /Users/zcl/Desktop/jni(注:此路径为你要编译的c++文件路径)

5.g++ -I/Library/Java/JavaVirtualMachines/jdk1.7.0_45.jdk/Contents/Home/include -c JniTest.cpp des.cpp rsa.cpp spluoj.cpp(注:本人文件夹下有4cpp文件)

可能会报找不到jni_md.h文件,到/Library/Java/JavaVirtualMachines/jdk1.7.0_45.jdk/Contents/Home/include/darwin目录下把jni_md.h文件拷贝到上级目录即是include目录下,重新运行上述命令成功后会生成4.o文件本人的是JniTest.o des.o rsa.o spluoj.o

6.g++ -dynamiclib -o libJniTest.jnilib JniTest.o des.o rsa.o spluoj.o(注:4.o文件)

成功后会生成libJniTest.jnilib文件

7.libJniTest.jnilib文件复制到当前项目下,在java文件输入

static {

    //使查找路径为当前项目路径

    System.setProperty("java.library.path",".");

    System.loadLibrary("JNITest");

}

8.ok启动编译

本人c++文件及编译后的.o文件,.jnilib,相应的项目jni相关的java文件下载路径:

http://download.csdn.net/detail/qwezcl/6801367

0 0
原创粉丝点击