首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >只为安装程序和应用程序在WInrun4j中嵌入一次jre

只为安装程序和应用程序在WInrun4j中嵌入一次jre
EN

Stack Overflow用户
提问于 2012-08-27 14:34:52
回答 1查看 1.4K关注 0票数 0

在安装我的Windows桌面应用程序时,我使用izpack创建一个安装程序,然后使用winrun4j从一个exe调用它,并且在安装之后添加另一个用于实际运行应用程序的winrun4j包装器。

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

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

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

更新

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

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

但是我只需要JVM一次,我知道我需要从<file src="C:/code/widget/JVM32bit" targetdir="$INSTALL_PATH"/>中删除izpack.xml,但是如何将32位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

示例

install.xml在C:\code\Widget\installer中

代码语言:javascript
复制
<pack name="Base" loose="true" required="yes" preselected="yes">
   <description>JVM</description>
   <file src="C:\Code\Widget\JVM" targetdir="$INSTALL_PATH"/>
</pack>

当打包时,izpack安装应该有:

代码语言:javascript
复制
JVM
install.jar
setup.exe
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-08-27 23:34:45

如果JVM嵌入在安装程序中,那么程序就不能使用它。同样,如果JVM嵌入到程序中,那么安装程序就不能使用它。

但是,您仍然可以只使用一个JVM来完成这个任务。这是通过将JVM处理到本地文件来完成的。

因此,当您使用winrun4j启动安装程序时,它将从嵌入式JVM启动,然后在安装结束时,需要将相同的JVM保存到程序文件夹中。

然后,您的程序winrun4j exe可以使用保存到文件夹中的JVM启动程序,方法是将winrun4j中的"vm.location“设置为保存的JVM的位置。

代码语言:javascript
复制
Process:
1) Run the installer exe with the required JVM
2) During the installation save the embedded JVM to a file
3) Once the instillation is complete the program exe can launch using the saved JVM
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12144096

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档