java jni 入门

1. 安装java环境

yum install java-devel -y
yum install java -y

2. 编译流程

下面将介绍编写 JNI 入门教程HelloNative程序的编写, 主要的步骤为:

  1. 编写 HelloNative.java 程序;

  2. 编译并得到 HelloNative.h 头文件;

  3. 编写 HelloNative.c 程序;

  4. 编译动态链接库libHelloNative.so;

  5. 运行HelloNative程序。

3. 编译过程

  1. 编写 HelloNative.java 程序
public class HelloNative{

    static{

        System.loadLibrary("HelloNative");-

    }

    public static native void sayHello();

    public static void main(String[]args){

        new HelloNative().sayHello();

    }

}

  1. 编译并得到 HelloNative.h 头文件(这里需要注意有包名的java代码,需要带上路径)

执行命令如下:

javac HelloNative.java
javah HelloNative
  1. 编写 HelloNative.c 程序
#include <stdio.h>

#include "HelloNative.h"

JNIEXPORT void JNICALL Java_HelloNative_sayHello(JNIEnv *env, jclass jc)-

{

    printf("Hello Native\n");

}
  1. 编译动态链接库libHelloNative.so
动态库
gcc  HelloNative.c -fPIC -shared -o libHelloNative.so -I /usr/java/jdk1.8.0_181/include/ -I /usr/java/jdk1.8.0_181/include/linux/

默认的jdk路径:

/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.222.b10-0.el7_6.x86_64/include/
/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.222.b10-0.el7_6.x86_64/include/linux/

如果生成的是静态库:需要通过指令完成:

ar -x mylib.a
g++ -shared *.o -o mylib.so -lstdc++

这里的路径可以通过locate来获取

locate jni.h
locate jni_md.h
  1. 运行HelloNative程序
export LD_LIBRARY_PATH=.:$LD_LIBRARY_PATH
java HelloNative
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值