java - C++ JNI想要安装Mac Legacy JRE6

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

我安装了 JDK8,并且我的 JAVA_HOME 设置为正确的路径。我可以毫无问题地使用 Java。然而,当我尝试从 C++ 运行 Java 代码时,它提示我安装非常旧的 JRE6 版本。

在我的代码中,我有:

JavaVMInitArgs vm_args;
vm_args.version = JNI_VERSION_1_8;

所以请求 JRE6 很奇怪。如何让 C++ JNI 使用我现有的 JDK8 安装?

JDK8 is installed, but JRE6 is promoted to install.

最佳答案

出于某种原因,当代码使用libjvm.dylib时会发生这种情况。还有 libjli.dylib 具有相同的功能,但跳过 JRE 6 对话框。我从来没有费心去检查为什么会这样。

如果您使用 -ljvm 进行链接,请将其替换为 -ljli。如果您将 dlopen 与 dlsym 一起使用,只需使用其他库名称即可。

关于java - C++ JNI想要安装Mac Legacy JRE6,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39483145/

相关文章:

PHP7 和 Apache 编译警告

java - 是否可以将函数值存储在哈希表中?

c++ - 加载库失败,但引用库中的符号可用

java - Android 检索手机联系人查询需要很长时间

c++ - 创建 Matlab MEX 函数时,是否将 mexFunction 放在 C++ 头文件或源文件中?

c++ - 如何为 OpenMP 中的任意数量的线程并行化获得相同的输出以用于 if-else,增量?

macos - 有没有人设置tomcat来使用mod_jk运行虚拟主机

Python macOS 构建从终端运行,但在 Finder 启动时崩溃

java - 将 YouTube 数据 API 添加到 Android Studio

Java NIO Http 客户端请求与线程池