OSX - 编译Java JNI应用程序以仅在安装了JRE的情况下运行

时间:2017-10-18 00:46:22

标签: java macos

我正在编写一个本机应用程序,它使用JNI创建Java虚拟机并在其上运行一些代码。此应用程序旨在分发给其他人使用,因此它需要在其他计算机上工作,而不仅仅是我的。这一切在PC上运行良好,但在Mac上,存在各种各样的问题。

如果我使用内置于Xcode的Java框架,那么我可以使用JNI,只要我的所有代码都编译为Java Version 6 - 因为Xcode的Java框架显然已经结束了对Java 6的支持。

如果我安装JDK并巧妙地链接到libjvm.dlib,libjli.dylib和libjava.dylib文件,我可以使用更高版本的Java。在这种情况下,一切都运行得很好,非常酷。所以我尝试在没有安装JDK的另一台Mac上运行它,只是JRE,我发现它不起作用!尽管JDK中存在jre / lib / server / libjvm.dylib,但事实证明它在JRE中不存在。

我的问题是:有没有办法创建一个只在安装了JRE的Mac OSX上运行的Java 8或Java 9 VM,而不是JDK?

1 个答案:

答案 0 :(得分:-1)

嗯......我不完全确定我理解你的要求,但我会根据问题对我的回答。我不得不问,你是否确保将Java程序正确打包到.jar文件中?如果这不是问题,我会说我通常知道您可以用Java捆绑库和其他包。我不会老实地知道这是否适合您,因为我不知道您提到的那些文件,但这可能是您可能的解决方案。

抱歉,我无法提供更多信息。希望其他人更熟悉Java的这个特定部分。