初始化JVM时出错

时间:2016-02-18 10:55:57

标签: java c++ qt jvm

我意识到这是一个已被少数人提出的问题,但他们的答案并没有解决我的问题。

我目前正在尝试制作一个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=./";

1 个答案:

答案 0 :(得分:-1)

这可能是系统上安装jdk的问题。 只需重新安装jdk 8u92并在系统的环境路径中添加相同的路径。