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