它不会创建一个Java VM(JNI)。

 2023-01-20    302  

问题描述

我的简单命令行应用程序:

int _tmain(int argc, _TCHAR* argv[])
{
 JavaVM *jvm;
 JNIEnv *env;
 JavaVMInitArgs vm_args;
 JavaVMOption options[1];
 options[0].optionString = "-Djava.class.path=."; //Path to the java source code
 vm_args.version = JNI_VERSION_1_6; //JDK version. This indicates version 1.6
 vm_args.nOptions = 1;
 vm_args.options = options;
 vm_args.ignoreUnrecognized = 0;

 jint ret = JNI_CreateJavaVM(&jvm, (void**)&env, &vm_args);
 return 0;
}

给我:

它不会创建一个Java VM(JNI)。

Error occurred during initialization of VM
Unable to load native library: Can't find dependent libraries

从未达到”返回0″处的断点. jvm.dll与我的命令行应用程序相同的目录.

我不明白这是什么问题.有任何想法吗?提前

推荐答案

我认为您的问题是由这个问题在Sun Jni Faq中.

tl; dr版本:不要移动JVM安装的DLL.

其他推荐答案

在我的经验中,

原因

也许,jvm.dll位于路径下方.

c:\ program文件\ java \ jdk1.6.0_xx \ jre \ bin \ client \ client \(a)

和下面的文件夹包含许多DLL,jvm需求;

c:\ program文件\ java \ jdk1.6.0_xx \ jre \ bin \(b)

so,JMV.DLL(您动态链接)试图在其父文件夹(b)中搜索全部DLL.

解决方案

不要将jvm.dll复制到您.exe所在的同一文件夹!
检查您的路径系统变量.它必须包含(a)和(b)路径.
如果是这样,也许您的.EXE将成功执行.

以上所述是小编给大家介绍的它不会创建一个Java VM(JNI)。,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对77isp云服务器技术网的支持!

原文链接:https://77isp.com/post/26014.html

=========================================

https://77isp.com/ 为 “云服务器技术网” 唯一官方服务平台,请勿相信其他任何渠道。