我目前正在开发一个 Windows 桌面应用程序,该应用程序使用 JNI 调用位于 jar 文件中的方法。
我需要知道打包我的应用程序的最佳方式,以便它可以链接到 jvm.dll。我不确定是否应该将在 JDK 的 bin 目录中找到的所有二进制文件打包到我的安装文件中(不确定是否允许我这样做)?
问题是网上找到的所有例子都是直接在JDK安装路径下找到jvm.dll的链接。由于我的应用程序是商业应用程序,因此我不能依赖或要求每个用户都应该在我的应用程序旁边安装 JDK,因为那太荒谬了。
请问有人可以阐明打包此类应用程序的最佳方法吗?
问候
最佳答案
jvm.dll 也随普通 java 运行时一起安装(bin/client 子目录)。通过检查一些注册表值,您可以找到它的路径,从那里加载它并检查是否安装了正确的版本。如果您已经链接了 jvm.lib,则需要将 jvm.dll 添加到延迟加载的 dll 列表中,以便您可以在运行时加载它。
详情请看我最近对另一个问题的回答:
https://stackoverflow.com/a/14434203/93652
关于c++ - 分发使用 JNI 的应用程序的最佳方式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14435858/