Linux下JNI技术实现
<1>编写Java文件,指定本地方法
class HelloWorld ...{
public native void displayHelloWorld(); //声明本地方法
static
...{
System.loadLibrary("hello"); //加载hello库
}
public static void main(String[] args)
...{
new HelloWorld().displayHelloWorld(); //调用库里的方法
}
}
<2>编译Java文件并产生本地方法头文件
javac HelloWorld.java
javah -jni HelloWorld
<3>根据产生的HelloWorld.h头文件编写实现文件HelloWorld.c
#include <jni.h>
#include "HelloWorld.h"
#include <stdio.h>
JNIEXPORT void JNICALL
Java_HelloWorld_displayHelloWorld(JNIEnv *env, jobject obj)
...{
printf("Hello world! ");
return;
}
<4>编译C、C++源文件,产生libhello.so文件
cc -G -I/usr/java/include -I/usr/java/include/solaris HelloWorldImp.c -o libhello.so
<5>指定动态链接程序此共享库文件的路径
export LD_LIBRARY_PATH=`pwd`:$LD_LIBRARY_PATH
<6>运行HelloWorld.class文件
java HelloWorld
本人在Unix-Center上测试通过,希望你们测试也能成功。祝你们好运。
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。