Advertisement
caffeine314

JNI-FindClassProblem

Feb 11th, 2016
127
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.17 KB | None | 0 0
  1. #include <iostream>
  2. #include <jni.h>
  3. using namespace std;
  4.  
  5.  
  6. int main( void )
  7. {
  8.     JavaVM *jvm;
  9.     JNIEnv *env;
  10.  
  11.     JavaVMInitArgs vm_args;
  12.     JavaVMOption*  options = new JavaVMOption[1];
  13.  
  14.     options[0].optionString = const_cast<char *>("-Djava.class.path=.");
  15.  
  16.     vm_args.version            = JNI_VERSION_1_6;
  17.     vm_args.nOptions           = 1;
  18.     vm_args.ignoreUnrecognized = false;
  19.     vm_args.options            = options;
  20.  
  21.  
  22.     int retVal = JNI_CreateJavaVM(&jvm, (void**)&env, &vm_args);
  23.  
  24.     if( retVal < 0 ) {
  25.         printf("VM was not created successfully.  Return code is %d.\n", retVal);
  26.         return -1;
  27.     } else
  28.         printf("VM was created successfully.\n");
  29.  
  30.     delete options;
  31.  
  32.  
  33.     jclass clsMain = env->FindClass("option/MainClass");
  34.  
  35.     if( clsMain == NULL ) {
  36.         printf("Can't find MainClass class.\n");
  37.         jvm->DestroyJavaVM();
  38.         return -1;
  39.     } else
  40.         printf("Found Main class.\n");
  41.  
  42.     // The meat and potatoes
  43.     jmethodID mid = env->GetStaticMethodID(clsMain, "main", "(I)V");
  44.     env->CallStaticVoidMethod(clsMain, mid, 100);
  45.  
  46.     // All done!
  47.     jvm->DestroyJavaVM();
  48.  
  49.     return 0;
  50. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement