Install4j 运行可执行或批处理文件任务不';不要在Windows上应用参数

Install4j 运行可执行或批处理文件任务不';不要在Windows上应用参数,install4j,Install4j,我发现自己处于一个令人羡慕的位置,试图将第三方安装程序添加到现有的install4j项目中。我们正在尝试验证第三方安装程序启动时不会在Windows Vista/7上生成单独的UAC请求。我可以使用几个参数使安装保持静默,这些参数可以从命令提示符或PowerShell运行 我目前正在用install4j 5.0和5.1测试这一点,因为我们还没有计划将构建服务器升级到5.1。我的测试机器是一个Windows7VM,我已经用Java 1.6和1.7捆绑测试过,并且预装了1.7 在安装过程中,参数似乎

我发现自己处于一个令人羡慕的位置,试图将第三方安装程序添加到现有的install4j项目中。我们正在尝试验证第三方安装程序启动时不会在Windows Vista/7上生成单独的UAC请求。我可以使用几个参数使安装保持静默,这些参数可以从命令提示符或PowerShell运行

我目前正在用install4j 5.0和5.1测试这一点,因为我们还没有计划将构建服务器升级到5.1。我的测试机器是一个Windows7VM,我已经用Java 1.6和1.7捆绑测试过,并且预装了1.7

在安装过程中,参数似乎没有成功地传递给进程。使用Process Explorer,我可以看到CMD.EXE是通过命令启动的

C:\Windows\system32\cmd.exe /D /C "C:\Users\KRACHY~1\AppData\Local\Temp\i4j1544166103144462629.bat" 
批处理文件正在调用

"C:\Users\KRACHY~1\AppData\Local\Temp\E4JF73~1.TMP\user\VCREDI~1.EXE"  /q /norestart
然后将setup.exe提取到一个临时文件夹中,并使用

c:\a87fe1446d33379e58\Setup.exe
我可以跟踪所有这些,因为最终的安装缺少/q/norestart参数,它从一个许可协议页面开始,我们在安装的早期就获得了许可

现在,由于进程已停止,我可以保存从安装程序中提取的所有文件。如果我直接从命令提示符运行批处理文件命令行,安装程序确实会按照预期安静地安装。因此,当作为完整install4j过程的一部分运行时,有一种情况会阻止参数一直运行到最终的安装过程。可能是因为缺少环境空间?我如何才能准确地了解这些流程发生了什么和/或修复它


我更希望我们不需要更新安装文档,因为我们现在依赖于这个库。

您可以在“运行脚本”操作中尝试新的ProcessBuilder(“指向可执行文件的路径”、“/q”、“/norestart”)。重定向错误流(true).start().waitFor()。中间批处理文件将在install4j 6中消失。

您可以在“运行脚本”操作中尝试
新建ProcessBuilder(“可执行文件的路径”、“/q”、“/norestart”)。重定向错误流(true).start().waitFor()
。这会改变什么吗?中间批处理文件将在install4j 6中消失。谢谢。你真的应该拿出一个合适的答案,这样我才能接受。