我意识到这是一个已被少数人提出的问题,但他们的答案并没有解决我的问题。
我目前正在尝试制作一个QT应用程序,并且我有一些用Java编写的代码,我想使用它,所以我决定将JNI实现到我的应用程序中。
我使用以下代码初始化VM:
JNIEnv* SokoSolver::createVM(JavaVM **JVM){
JNIEnv* Env;
JavaVMInitArgs args;
JavaVMOption options;
options.optionString = "-Djava.class.path=./";
args.version = JNI_VERSION_1_6;
args.nOptions = 1;
args.options = &options;
args.ignoreUnrecognized = 0;
int returnValue = JNI_CreateJavaVM(JVM, (void**)&Env, &args);
if(returnValue < 0 || !Env){
cout << "Unable to launch JVM, Return Value: " << returnValue << endl;
}
return Env;
}
然而,每当我的代码运行时,我都会收到一条错误消息:
VM初始化期间发生错误无法加载本机库:找不到依赖库。
我正在使用x86版本的JVM.lib / JVM.dll以及相关的头文件。根据其他答案,我已将Windows中的路径变量更改为:
C:\Program Files (x86)\Java\jdk1.8.0_74\bin;
C:\Program Files (x86)\Java\jdk1.8.0_74\jre\bin\server;
但是当我运行我的代码时,我仍然会得到完全相同的错误。这个问题还有其他解决办法吗?是否与此有关:
options.optionString = "-Djava.class.path=./";
答案 0 :(得分:-1)
这可能是系统上安装jdk的问题。 只需重新安装jdk 8u92并在系统的环境路径中添加相同的路径。