2014-11-10 1 views
1

JNI SDK의 GetEnv 메소드는 2 개의 매개 변수를 허용합니다.다른 JVM 버전에서의 JNI 공유 객체 호환성

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

JVM은 이전의 모든 JNI 라이브러리와 역 호환됩니다.
최소값이 필요합니다. JNI 버전을 지정해야합니다.
JNI_VERSION_1_4은 대부분의 경우 괜찮습니다.

관련 문제