The return value of JNI_CreateJavaVM is 0 if there's
no problem, and a negative number if there was an error.
From jni.h:
#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 */
Granted, this topic is quite old, but hopefully if Google picks it up it'll help someone down the road