按以下步骤可以在Java文件中编写native方法.
1. 创建HelloWorld.java文件(declares the native method);
class HelloWorld { static { System.loadLibrary("HelloWorld"); } private native void print(); public static void main(String[] args) { new HelloWorld().print(); } }
2. 编译"javac HelloWorld.java";
3. 执行"javah -jni HelloWorld"生成HelloWorld.h;
4. 创建HelloWorld.c;
#include <jni.h> #include <stdio.h> #include "HelloWorld.h" JNIEXPORT void JNICALL Java_HelloWorld_print(JNIEnv *env, jobject obj) { printf("Hello World!n"); return; }
5. 在Redhat5.8中编译HelloWorld.c,生成HelloWorld.so;
gcc -c -fPIC -I/scratch/luwang/jdk6/include HelloWorld.c gcc -shared -o libHelloWorld.so HelloWorld.o
6. 设置LD_LIBRARY_PATH;
LD_LIBRARY_PATH=.:${LD_LIBRARY_PATH}; java HelloWorld
或
java -Djava.library.path=. HelloWorld
参考:
http://www.java-tips.org/other-api-tips/jni/simple-example-of-using-the-java-native-interface.html
http://ubuntuforums.org/showthread.php?t=1942105