启动jvm的内存不足错误

时间:2016-01-14 20:24:45

标签: c++ excel vba jvm java-native-interface

我们有一个OCX,它在Excel中用作SQL查询构建器。 OCX是一个运行查询构建器的包装器,它是用Java编写的。 Excel 2010中的一切工作正常。使用Excel 2013,我们有时会在实例化jvm时出现内存不足错误。有时候它有效,有时它不起作用。以下是创建jvm的代码:

    JavaVMInitArgs vm_args;
    JavaVMOption options[1];

    options[0].optionString = "-Djava.compiler=NONE";                               
    vm_args.version = JNI_VERSION_1_2;
    vm_args.options = options;
    vm_args.nOptions = 1;
    vm_args.ignoreUnrecognized = JNI_TRUE;

    LOG("starting JVM ");
    jint    returnCode = JNI_CreateJavaVMptr(&jvm, (void**)&env, &vm_args);
    if (returnCode < 0) 
    {
        string error = "Could not start JVM: ";
        error += getErrorMessage(returnCode);
        LOG("error starting JVM: " << error);
        throw EXCEPTION(error.c_str());
    }
    else
    {
        LOG("JVM started");
    }

我们使用的是旧版Visual Studio(2003)和Java 1.6。我们可以将选项传递给JNI_CreateJavaVMptr来解决内存不足错误吗?

0 个答案:

没有答案