1

我正在尝试加载 .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.

4

1 回答 1

0

指定类的全名,包括包名,.替换为/. 例如,如果您的Sample2课程在org.test包中,请使用m_JavaEnv->FindClass ("org/test/Sample2");

顺便说一句,这可能是一个错字,但应该删除和optionString之间的空格。-Djava.class.path

于 2014-07-24T11:50:04.367 回答