我安装了 JDK8,并且我的 JAVA_HOME 设置为正确的路径。我可以毫无问题地使用 Java。然而,当我尝试从 C++ 运行 Java 代码时,它提示我安装非常旧的 JRE6 版本。
在我的代码中,我有:
JavaVMInitArgs vm_args;
vm_args.version = JNI_VERSION_1_8;
所以请求 JRE6 很奇怪。如何让 C++ JNI 使用我现有的 JDK8 安装?
最佳答案
出于某种原因,当代码使用libjvm.dylib
时会发生这种情况。还有 libjli.dylib
具有相同的功能,但跳过 JRE 6 对话框。我从来没有费心去检查为什么会这样。
如果您使用 -ljvm
进行链接,请将其替换为 -ljli
。如果您将 dlopen 与 dlsym 一起使用,只需使用其他库名称即可。
关于java - C++ JNI想要安装Mac Legacy JRE6,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39483145/