Simple example of using the Java Native Interface(JNI)

本文介绍如何在Java中实现并调用本地方法(native method)。步骤包括:声明本地方法、编译Java文件、生成JNI头文件、实现本地方法、编译C文件为共享库、配置Java加载本地库路径。

按以下步骤可以在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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值