JAVA通过jni调用C++

xiaoxiao2021-02-28  60

JAVA通过jni调用C++

创建Java文件

public class HelloJni { native void hello(); static { System.loadLibrary("Hello"); } public static void main(String args[]) { HelloJni hi = new HelloJni(); hi.hello(); } }

native方法即是需要C++实现的方法

编译头文件

javah HelloJni 生成C/C++需要的头文件

编写C/C++代码

#include "HelloJni.h" JNIEXPORT void JNICALL Java_HelloJni_hello(JNIEnv * env, jobject obj) { printf("Hello, Jni!\n"); return; }

生成共享库

gcc -I $JAVA_HOME\include -I $JAVA_HOME\include\win32 -shared -Wl,–kill-at -s -o Hello.dll HelloJni.c

-I 指定头文件目录 -shared 生成动态库 –kill-at可以去掉函数名@后面的部分 -Wl参数将选项传给ld -o 生成目标可执行文件 -s 去掉符号表信息,不能用于调试

编译java文件及运行

javac HelloJni.java java HelloJni

转载请注明原文地址: https://www.6miu.com/read-2633061.html

最新回复(0)