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 に答える