<1>编写Java文件,指定本地方法
class
HelloWorld
...
{
public native void displayHelloWorld(); //声明本地方法
static
...{
System.loadLibrary("hello"); //加载hello库
}
public static void main(String[] args)
...{
new HelloWorld().displayHelloWorld(); //调用库里的方法
}
}
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
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;
}
#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上测试通过,希望你们测试也能成功。祝你们好运。