说白了,就是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啦