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