如何使用JNI在C ++中加载.jar文件

时间:2013-08-01 08:46:34

标签: c++

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

1 个答案:

答案 0 :(得分:0)

指定类的全名,包括将.替换为/的包名称。 例如,如果您的Sample2课程位于org.test个套餐中,请使用m_JavaEnv->FindClass ("org/test/Sample2");

顺便说一句,它可能是一个拼写错误,但应删除optionString-之间的Djava.class.path空格。