我正在尝试加载.jar中存在的方法。以下是代码段
JavaVMInitArgs vm_args;
memset(&vm_args, 0, sizeof(vm_args));
JavaVMOption* options = new JavaVMOption[1];
options[0].optionString =
"- Djava.class.path=C:\\Users\\Desktop\\POC\\POC\\Debug\\Sample2.jar;
vm_args.version = JNI_VERSION_1_6;
vm_args.nOptions = 1;
vm_args.options = options;
vm_args.ignoreUnrecognized = 0;
JNI_GetDefaultJavaVMInitArgs(&vm_args);
m_Status = JNI_CreateJavaVM_ptr (&m_JVM, (void**)&m_JavaEnv, &vm_args);
但是当我使用
时 classForJava = m_JavaEnv->FindClass ("Sample2");
classForJava
包含0
。
答案 0 :(得分:0)
指定类的全名,包括将.
替换为/
的包名称。
例如,如果您的Sample2
课程位于org.test
个套餐中,请使用m_JavaEnv->FindClass ("org/test/Sample2");
顺便说一句,它可能是一个拼写错误,但应删除optionString
和-
之间的Djava.class.path
空格。