JNI:找不到依赖库
JNI: Can't find dependent libraries
当我使用 JNI运行 我的程序时出现此错误
Error occurred during initialization of VM
Unable to load native library: Can't find dependent libraries
我将所有 JDK 8 个 DLL 文件移动到工作目录,但没有帮助。
我还尝试将 JAVA_HOME 设置为 JRE 路径,但这没有帮助。
我也试过 Dependency Walker,它说有一些 DLL 没有找到 JDK 8 doesn't have
我的 JVM 创建代码:
JVM create_java_vm()
{
const char* argv[] = { "-Djava.compiler=NONE,
"-Djava.class.path=.",}; //"-verbose:jni"
const int argc = static_cast<int>(sizeof(argv) / sizeof(argv[0]));
JavaVMInitArgs jvm_args;
JavaVMOption options[argc];
for (int i = 0; i < argc; ++i)
{
options[i].optionString = const_cast<char*>(argv[i]);
}
JavaVM* vm = nullptr;
JNIEnv* env = nullptr;
JNI_GetDefaultJavaVMInitArgs(&jvm_args);
jvm_args.version = JNI_VERSION_1_8;
jvm_args.nOptions = argc;
jvm_args.options = options;
jvm_args.ignoreUnrecognized = false;
if (JNI_CreateJavaVM(&vm, reinterpret_cast<void**>(&env), &jvm_args) != JNI_OK)
{
return { vm, env }
}
return { vm, env }
}
我也试过了,但是程序找不到jvm.dll
如何解决这个错误?
我解决了这个问题,将我的 exe 文件添加到 jre 中的服务器文件夹
当我使用 JNI运行 我的程序时出现此错误
Error occurred during initialization of VM
Unable to load native library: Can't find dependent libraries
我将所有 JDK 8 个 DLL 文件移动到工作目录,但没有帮助。
我还尝试将 JAVA_HOME 设置为 JRE 路径,但这没有帮助。
我也试过 Dependency Walker,它说有一些 DLL 没有找到 JDK 8 doesn't have
我的 JVM 创建代码:
JVM create_java_vm()
{
const char* argv[] = { "-Djava.compiler=NONE,
"-Djava.class.path=.",}; //"-verbose:jni"
const int argc = static_cast<int>(sizeof(argv) / sizeof(argv[0]));
JavaVMInitArgs jvm_args;
JavaVMOption options[argc];
for (int i = 0; i < argc; ++i)
{
options[i].optionString = const_cast<char*>(argv[i]);
}
JavaVM* vm = nullptr;
JNIEnv* env = nullptr;
JNI_GetDefaultJavaVMInitArgs(&jvm_args);
jvm_args.version = JNI_VERSION_1_8;
jvm_args.nOptions = argc;
jvm_args.options = options;
jvm_args.ignoreUnrecognized = false;
if (JNI_CreateJavaVM(&vm, reinterpret_cast<void**>(&env), &jvm_args) != JNI_OK)
{
return { vm, env }
}
return { vm, env }
}
我也试过了,但是程序找不到jvm.dll
如何解决这个错误?
我解决了这个问题,将我的 exe 文件添加到 jre 中的服务器文件夹