2

我的安装 widget.zip zipfile 包含以下内容:

  • 32位Java
  • 安装.jar
  • 小部件安装程序.exe
  • 小部件安装程序.ini
  • 小部件安装程序.ico

总结一下:

  • 32bitJava 是从 Oracle 下载的 32 位 JRE
  • install.jar 是 Izpack 创建的安装程序
  • widgetinstaller.* 由 winrun4j 创建,为安装程序提供 exe 包装器。

因此,通过此设置,我可以安装我的应用程序,而无需用户安装 Java 运行时。

然而,一旦安装,实际的应用程序还需要一个 java 运行时才能实际运行。因此,目前 32bitJava 的副本作为 izpack 安装的一部分包含在内,即它存在于 install.jar 中并在安装时安装。

但这意味着我有两个 JVM 副本,并且因为 32bitJava 比我的实际应用程序大,所以我的下载量太大了。

那么如何在安装期间/之后将 32bitJava 文件夹复制到安装中,而不必将其包含在 install.jar 中?

4

4 回答 4

2

您想为 JVM 做一个“松散”的包。一个松散的包不需要包含它安装的文件,因此它可以将文件从 zip 复制到适当的位置,而不是使用嵌入在 jar 中的文件。

<pack id="java" name="java" required="yes" preselected="yes" loose="true">
  ...
  <executable ...>
    <!-- something appropriate to install java -->
  </executable>
</pack>
于 2012-09-27T11:09:59.927 回答
0

将文件打包到自解压存档/zip 中,作为解压缩过程的一部分,将文件解压缩到您需要的位置。

在 Wikipedia 上有更多关于自解压档案的信息:http ://en.wikipedia.org/wiki/Self-extracting_archive

于 2012-09-26T22:36:16.520 回答
0

如何创建一个小型的安装后实用程序来将可执行文件复制到该位置?您可以在一个小的 shell 脚本(或 Windows 上的批处理文件)中创建它,甚至可以在一个小的 C++ 实用程序中创建它,该实用程序只是将 JVM 复制到您需要的位置。这样,在安装实用程序后,您将触发安装后代码,并将 JVM 复制到所需位置。

于 2012-09-27T21:47:28.247 回答
0

与其被迫在 install.jar 中包含 java 安装,不如让 install.jar 安装您的程序并在此处包含一个链接: http ://www.java.com/inc/BrowserRedirect1.jsp ?locale=en ? 那是下载当前版本的java的链接。

要创建这样的链接,请右键单击 > 新建 > 快捷方式,将链接粘贴到第一个对话框中,单击下一步,然后将其命名为“Java 安装”。这最多会为您的包添加 4 kb,并且仍然允许您安装 java(但是,用户必须手动单击它)

我正在使用浏览器重定向 URL,因为它根据他们的计算机(操作系统和处理器位)识别 java 人需要什么

于 2012-09-27T12:36:47.887 回答