Linux 下 Java JNI 调用 .so 文件的方法
刚刚试过一个这样的例子,省事起见,略改并记录如下:
1. Java 类编写
public class Hello {
static {
System.loadLibrary("goodluck");
}
public static native int get();
public static native 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");
}
}
}
OK Java 类有了。
执行:
javac Hello.java
上面成功后,再执行下面生成头文件:
javah Hello
生成了 Hello.h
2. C 语言实现
编写 Hello.c:
#include "Hello.h"
int i = 0;
JNIEXPORT jint JNICALL Java_Hello_get(JNIEnv *env, jclass jc) {
i;
}
JNIEXPORT JNICALL {
*tsetstr = ( *)(*env)->GetStringUTFChars(env, s, );
(, tsetstr);
i = j;
}

