c++ 에서 JNI 사용해서 Java 메소드 불러올때 findclass 결과가 0입니다..
글쓴이: 혜진권@Google / 작성시간: 월, 2018/12/03 - 5:13오후
JavaVMOption options; JavaVMInitArgs vm_args; JNIEnv* env; JavaVM* jvm; long status; options.optionString = "-Djava.class.path=경로"; vm_args.version = JNI_VERSION_1_8; vm_args.nOptions = 1; vm_args.options = &options; status = JNI_CreateJavaVM(&jvm, (void**)&env, &vm_args); jclass cls; jmethodID method; if (status != JNI_ERR) { cls = env->FindClass("Open"); // class를 찾아 jclass를 생성한다. if (cls != 0) { method = env->GetStaticMethodID(cls, "openFile", "(Ljava/lang/String;ILjava/lang/String;)V"); if(method != 0) { jstring method_args0 = env->NewStringUTF(""); // path jint method_args1 = 0; // pageIndex jstring method_args2 = env->NewStringUTF(""); // search term env->CallStaticVoidMethod(cls, method, method_args0, method_args1, method_args2); } } else { AfxMessageBox(_T("클래스를 찾을 수 없습니다.")); return; } jvm->DestroyJavaVM(); }
Open 이라는 클래스에 있는 openFile(String path, int index, String term) 메소드를 불러오려고 하는데 Findclass("Open") 결과가 항상 0입니다. "-Djava.class.path="여기에는 Open.class 파일이 있는 경로를 넣었는데요 왜안되는지 아무리 검색해도 모르겠네요..
Forums:
댓글 달기