请考虑以下代码。
JavaVM * jvm;
JNIEnv *env;
JavaVMInitArgs vm_args;
JavaVMOption options;
options.optionString ="-Djava.class.path=D:\\Work\\mybytes.jar";
vm_args.version = JNI_VERSION_1_6;
vm_args.nOptions = 1;
vm_args.options = &options;
vm_args.ignoreUnrecognized = 0;
JNI_GetDefaultJavaVMInitArgs(&vm_args);
int ret = JNI_CreateJavaVM(&jvm, (void**)&env, &vm_args);
if(ret >=0)
{
jclass myBytesClass=env->FindClass("MyBytes");
jmethodID myByteConstructor=env->GetMethodID(myBytesClass,"<init>","()V");
myByteObj=env->NewObject(myBytesClass,myByteConstructor,NULL);
char* printBytes=env->GetMethodID(myBytesClass,"printBytes","([B)V");
}
我不想在代码中使用此声明。
options.optionString =“ - Djava.class.path = D:\ Work \ mybytes.jar”;
我想在环境变量的classpath中添加这个jar文件。 但是当我将这个jar文件添加到classpath变量时,jvm不会加载这个jar文件。 我不知道为什么会这样?
答案 0 :(得分:0)
JNI_GetDefaultJavaVMInitArgs(&vm_args);
在该行之后移动选项字符串的设置。 (想想你实际上可以将它们全部一起删除,不再认为它需要了)