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