1.新建java类
public class Hello
{
static
{
System.loadLibrary("goodluck");
}
public native static int get();
public native static void set(int i,String s);
public static void main(String[] args)
{
try{
Hello test = new Hello();
test.set(10,"5555");
System.out.println(test.get());
}catch(Exception ex)
{
System.out.println("ssssss");
}
}
}
2.生成Java class对象
javac Hello.java
3.生成头文件
javah Hello
4.编写Hello.c
#include "Hello.h"
int i = 0;
JNIEXPORT jint JNICALL Java_Hello_get(JNIEnv *env, jclass jc)
{
return i;
}
JNIEXPORT void JNICALL Java_Hello_set(JNIEnv *env, jclass jc, jint j,jstring s)
{
char * tsetstr=(char*)(*env)->GetStringUTFChars(env, s, NULL);//注意此处jstring和char *的转换
printf("%s--------\n",tsetstr);
i = j;
}
5.生成.o文件
gcc -fPIC -D_REENTRANT -I/usr/lib/jvm/java-8-openjdk-amd64/include -I/usr/lib/jvm/java-8-openjdk-amd64/include/linux -c Hello.c
6.生成.so文件 ——libgoodluck.so
gcc -shared Hello.o -o libgoodluck.so
7. 在java类中调用
java Hello
注意:为了让java找到此so,运行:export LD_LIBRARY_PATH=.,将当前目录加入此环境变量。第5步中替换成自己的jdk路径。