JNI编写,Java调用C++

JNI

编写java代码

1.vim JNIDemo.java

public class JNIDemo{
    // 创建一个native接口方法,此方法在C++代码中实现
    public native void doWork();
    public static void main(String[] args){
        // 加载C++文件
        System.load("/home/username/libTestJNI.so");
        JNIDemo jniDemo = new JNIDemo();
        jniDemo.doWork();
    }
}

2.编译Java代码 javac JNIDemo.java

3.生成.h头文件 javah JNIDemo

编写C++代码

1.vim TestJNI.cpp

#include<iostream>
#include<jni.h>
// 引入Java生成的头文件
#include "JNIDemo.h"
using namespace std;
// 实现Java中 doWork方法
JNIEXPORT void JNICALL Java_JNIDemo_doWork
(JNIEnv *, jobject){
   cout << "Hello, world!" << endl; 
}

2.使用g++编译器生成.so动态库文件

g++ -I /usr/local/jdk1.8.0_231/include -I /usr/local/jdk1.8.0_231/include/linux/ -fPIC -shared -o libTestJNI.so TestJNI.cpp

运行Java代码

1.java JNIDemo

posted @ 2022-05-12 11:13  pidgey016  阅读(26)  评论(0编辑  收藏  举报