java - 它不会创建 Java VM (JNI)

标签 java c++ jvm java-native-interface

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

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;
}

给我:

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

永远不会到达“return 0”处的断点。 jvm.dll 与我的命令行应用位于同一目录中。

我不明白这是怎么回事。有任何想法吗?提前致谢

最佳答案

我认为 this question 回答了您的问题在 Sun JNI FAQ 中。

TL;DR 版本:不要移动 JVM 安装的 DLL。

关于java - 它不会创建 Java VM (JNI),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2570551/

相关文章:

java - 发生错误,应用程序在通过单击按钮打开 fragment 时崩溃

c++ - 无法读取图像 OpenCV

c++ - 应该使用哪种C语言和图形库来编写与操作系统无关的程序?

c++ - 文件读取问题

android - OutOfMemory 错误,但有可用内存

java - 我的vps有足够的内存,但vm无法运行

java - ANTLR 如何获取重写的代码源? (使用 TokenRewriteStream)

java - 公开 keySet() 的线程安全方式

java - JVM 不会终止

java - GUI 中的 JLabel 重叠文本