说白了,就是JAVA调用由C/C++编写的库文件DLL(WINDOWS)/SO(UNIX)
public class testdll
{
static
{
System.loadLibrary("goodluck");
}
public native static int get();
public native static int set(int a);
public static void main(String[] args)
{
testdll test = new testdll();
test.set(10);
System.out.println(test.get());
}
}
用javac testdll.java编译它,会生成testdll.class。
再用javah testdll,则会在当前目录下生成testdll.h文件,这个文件需要被C/C++程序调用来生成所需的库文件。
将testdll.h和include/下的jni.h作为头文件,实现
JNIEXPORT jint JNICALL Java_testdll_get (JNIEnv *, jclass); 和
JNIEXPORT void JNICALL Java_testdll_set (JNIEnv *, jclass, jint);
生成goodluck.dll文件。就ok啦