java - 如何在我的安装程序中正确地重新打包 JRE 安装程序?

标签 java installation

我有一个 Java 应用程序,正在为其编写安装程序。我们正在使用 AdvancedInstaller 程序来创建我们的安装程序(嗯,我们目前正在评估它,但肯定会很快购买许可证),尽管它对 Java 应用程序有特殊支持,但它更适合将它们重新打包为桌面 -类型应用程序,我们的软件是一系列 Java 服务和其他实用程序,在 EXE 包装器中分发没有意义。该软件的目标受众非常具体,而且我们知道我们的软件可能会自动分发到新镜像的 Windows 2003 Server 计算机上。因此,要求 Java 作为先决条件基本上会给一些糟糕的系统管理员带来更多工作,如果可能的话,我宁愿通过在我们自己的内部重新打包 JRE 安装程序来避免这种情况。

我发现,如果我尝试从 MSI 中将 JRE 的安装程序作为预安装步骤执行,它会提示另一个安装程序已经在运行(当然是我的),因此它会退出。当我尝试将 JRE 安装程序添加为 AdvancedInstaller 项目中的必备软件(作为捆绑的 EXE,而不是 URL 链接)时,尽管我尝试强制安装它,但它似乎从未真正安装。

重新打包 JRE 的最佳方法是什么?我并不是真正的 Java 爱好者,所以我不太了解其他开发人员如何处理同样的问题,只是要求他们的用户自己寻找并安装 JRE。这里理想的解决方案是我们找到一个可以从另一个 MSI 安装程序内部执行的 EXE 安装程序,或者如果可能的话,将所有文件打包到 JRE 中,然后创建适当的注册表和环境变量。我应该怎样做呢?

最佳答案

我不知道这是否是做到这一点的“方法”,但面对有点类似的问题,我们只需将安装的 JRE 与我们的应用程序文件的其余部分一起归档,并确保我们所有的启动脚本都不使用 java ...,而是使用 ..\..\jre\bin\java ... 或类似的。作为安装过程的一部分,JRE 将在安装位置的子目录中解包,仅此而已。

关于java - 如何在我的安装程序中正确地重新打包 JRE 安装程序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/271596/

相关文章:

installation - 安装时卸载另一个 MSI

java - 未找到 spring-security 中的/登录映射

java - 在长时间事务中每次查询后是否应该关闭连接?

visual-studio-2010 - 将 PostgreSQL 安装程序添加到我自己的应用程序安装程序

Android SDK 日志显示 : "Download interrupted: Connection to https://dl-ssl.google.com refused", 可以做什么?

ruby - Ruby gems 的问题(损坏?)试图让指南针在 npm 中工作

java - 代码效率。使用循环的有效方法

java - 在java中将一个数组复制到另一个数组中。数组存储异常

java - 您在敏捷开发中使用哪些工具尤其是Java环境?

dll - 在InnoSetup中注册DLL/OCX