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:


댓글 달기