有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java仅为安装程序和应用程序将jre嵌入WInrun4j一次

为了安装我的Windows桌面应用程序,我使用izpack创建了一个安装程序,然后使用winrun4j从exe调用它,这也是izpack安装的一部分,添加另一个winrun4j包装,以便在安装后实际运行应用程序

问题是,对于win4runj来说。exe要工作,它需要使用正确的Java类型,即如果exe是64位,它必须运行64位jvm,如果exe是32位,它必须运行32位jvm。这可能会让用户感到困惑,所以我打算利用winrun4j使用嵌入式jvm,然后提供两个下载

  • widgetinstaller。exe(32位)
  • widgetinstaller64。exe(64位)

但我的困惑是,对于每次下载,我只想嵌入jvm一次,但无法解决如何做到这一点,因为我有两个EXE(安装程序和程序本身),这能做到吗

更新

如果我安装两次JVM(一次在使用izpack构建时包含在install.jar中,一次添加到zip文件中,以便widgetinstaller.exe使用),它就可以工作了

  • widgetinstaller。exe驻留在c:\code\widget\installer中
  • 从Oracle下载32位jre
  • 安装到c:\code\widget\32bitJVM中
  • 编辑izpack。xml,添加<file src="C:/code/widget/JVM32bit" targetdir="$INSTALL_PATH"/>
  • 添加安装程序vm。location=32bitJVM/bin/client/JVM。dll到c:\code\widget\installer\widgetinstaller。伊尼
  • 为小部件本身添加虚拟机。地点=/32bitJVM/bin/client/JVM。dll到c:\code\widget\widget。伊尼
  • 重新生成代码,并在zip文件中包含32bitJVM以创建widgetinstaller。zip(包含32位JVM、widgetinstaller.ini、widgetinstaller.exe、widgetinstaller.ico和install.jar)
  • 解压缩并双击widgetinstaller。要安装的exe

但是我只想要一次JVM,我知道我需要从izpack中删除<file src="C:/code/widget/JVM32bit" targetdir="$INSTALL_PATH"/>。xml,但如何将32位JVM复制到程序安装文件夹中

同一个JVM需要保存到程序文件夹中

似乎这必须在izpack之外完成

编辑

解决方案是使用Can I install a file using Izpack 5 without it being part of the install.jar built by izpack中描述的Izpack松散包

但是,必须为路径设置什么是相当令人困惑的,文档错误地暗示您放入了一个相对链接http://izpack.org/documentation/installation-files.html#the-packs-element-packs

示例

izpack安装。xml位于C:\code\Widget\installer中

<pack name="Base" loose="true" required="yes" preselected="yes">
   <description>JVM</description>
   <file src="C:\Code\Widget\JVM" targetdir="$INSTALL_PATH"/>
</pack>

打包时,izpack安装应具有:

JVM
install.jar
setup.exe

共 (0) 个答案