JNI sdk中的GetEnv
方法接受2个参数。
struct JavaVM_ {
jint GetEnv(void **penv, jint version) {
return functions->GetEnv(this, penv, version);
}
};
以下是第二个参数的可能值。
#define JNI_VERSION_1_1 0x00010001
#define JNI_VERSION_1_2 0x00010002
#define JNI_VERSION_1_4 0x00010004
#define JNI_VERSION_1_6 0x00010006
#define JNI_VERSION_1_8 0x00010008
如果我指示JNI_VERSION_1_6
,但共享对象是由JVM 1.8加载的,会发生什么?是否有查询JVM版本的方法?
JVM向后兼容所有以前的JNI库
因此,您应该指定所需的最小值JNI版本JNI_VERSION_1_4
在大多数情况下应该是可以的。