我的简单命令行应用程序:
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/