gpt4 book ai didi

c++ - 用我的应用程序打包一个 jre

转载 作者:可可西里 更新时间:2023-11-01 09:26:03 25 4
gpt4 key购买 nike

我的应用程序包含一个使用 JNI 调用 java 程序的 c++ exe 文件,因此需要 jvm.dll。但是,我希望我的应用程序附带它自己的嵌入式 jre,但是在我复制在 JAVA_HOME 中找到的 jre6 文件夹并将其添加到我的安装程序后,它无法运行该程序(VM 初始化期间发生错误无法加载 native 库:可以't find dependent libraries),当我在jvm.dll上使用dependency walker时,它说找不到gpsvc.dll、IEShims.dll和sysntfy.dll。在我尝试将这些 dll 复制到与 jvm.dll 相同的文件夹后,dependency walker 告诉我 gpsvc.dll 和 sysntfy.dll 是 64 位的,而它应该是 x86。问题是,我的系统上只有这些 dll,我该怎么办?

最佳答案

Java 虚拟机不仅仅包含 jvm.dll。您需要重新分发整个 JVM 包并将其安装在用户的机器上,而不是仅仅将 jvm.dll 添加到您自己的应用程序中。

要求您的用户在安装您的应用程序之前自行下载并安装 JVM 可能会容易得多。如果您真的想在您的应用程序中重新分发 JVM,您需要在 Oracle 的网站上找到文档,了解确切的许可证是什么以及如何做。看this paragraph例如 JDK 6 自述文件。

不是复制jvm.dll和它依赖的其他库那么简单

关于c++ - 用我的应用程序打包一个 jre,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7512285/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com