JNI_CreateJavaVM的返回码

fel*_*ipe 3 java java-native-interface

我找到了http://docs.oracle.com/javase/8/docs/technotes/guides/jni/spec/invocation.html

是JNI调用函数的文档。

但例如,如果我打电话:

JNI_CreateJavaVM
Run Code Online (Sandbox Code Playgroud)

有此技术说明:

https://docs.oracle.com/javase/8/docs/technotes/guides/jni/spec/invocation.html#JNI_CreateJavaVM

我知道返回码是一个提示,告诉我:

  • 如果函数的返回值为0,确定
  • 如果函数的返回值为负,则不正确或存在某些问题。

方法JNI_CreateJavaVM的上述文档说:

RETURNS:
Returns JNI_OK on success; returns a suitable JNI error code (a negative number) on failure.
Run Code Online (Sandbox Code Playgroud)

但是我不知道真正的结果是什么,因为它没有说出可能的错误代码。

因此,我无法创建任何JVM,因为它给我一个* jvm指针,并且错误代码为-1。

是否有JNI的“ javadoc”?

wer*_*ero 5

jni.h 定义JNI函数的可能的返回值:

#define JNI_OK           0                 /* success */
#define JNI_ERR          (-1)              /* unknown error */
#define JNI_EDETACHED    (-2)              /* thread detached from the VM */
#define JNI_EVERSION     (-3)              /* JNI version error */
#define JNI_ENOMEM       (-4)              /* not enough memory */
#define JNI_EEXIST       (-5)              /* VM already created */
#define JNI_EINVAL       (-6)              /* invalid arguments */
Run Code Online (Sandbox Code Playgroud)