我安装了JDK8,并且我的JAVA_HOME被设置为正确的路径。我可以毫无问题地使用Java。但是,当我尝试从C ++运行Java代码时,它会提示我安装一个非常旧版本的JRE6。
在我的代码中,我有:
JavaVMInitArgs vm_args;
vm_args.version = JNI_VERSION_1_8;
所以请求JRE6很奇怪。如何让C ++ JNI使用我现有的JDK8安装?
答案 0 :(得分:2)
由于某些原因,当代码使用libjvm.dylib
时会发生这种情况。还有libjli.dylib
具有相同的功能但跳过了JRE 6对话框。我从来没有费心去检查为什么会这样。
如果您与-ljvm
相关联,请将其替换为-ljli
。如果您将dlopen
与dlsym
一起使用,只需使用其他库名称。