我有一个使用JNI创建Java虚拟机的C ++应用程序。我安装了最新版本的Java - JDK 8-144。如果我运行" java -version"它出现并告诉我Java Hotspot 8是JVM。我在.profile文件中定义了JAVA_HOME,它可以正常工作 - JAVA_HOME指向JDK8-144文件夹。
我的应用程序包括来自最新JDK的jni.h。我们的代码使用JNI_VERSION_1_8版本标志创建JVM。在Windows上,这可以完美地编译和运行。
问题在于,当我们在Mac上编译此代码并使用JVM Framework进行链接时,我们最终会得到一个可执行文件,在运行时,它表示存在没有Java运行时的"没有Java运行时#34;并出现一个对话框,说明我们需要安装Version 6 JVM。如果我们从Bash终端或XCode运行应用程序,就会发生这种情况。
我已经研究了这个,还有其他人有过这个相同的问题。每个人似乎都建议JAVA_HOME需要指向正确的位置,而我的是。同样,java -version也能正常工作。整件事情令人费解。
有谁知道解决这个问题的正确方法?我尝试了两种不同的Mac,效果相同。他们都在运行最新版本的macOS Sierra。
谢谢! 丹