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版本的方法?
答案 0 :(得分:1)
JVM向后兼容所有以前的JNI库
所以你应该指定 minumum required JNI版本
对于大多数情况,JNI_VERSION_1_4
应该没问题。