【问题标题】:running updater in console mode in install4j在 install4j 中以控制台模式运行更新程序
【发布时间】:2015-10-27 05:06:20
【问题描述】:

我正在使用 install4j(版本 5.1.15)来构建我们的应用程序安装程序,并且我已经开始尝试使用静默版本检查的更新程序。在 GUI 模式下一切正常,但在控制台模式下,更新程序下载我的应用程序的新版本,当它要求继续升级时,它不会启动安装程序应用程序。我想知道这是否与Launching an install4j installer from within another install4j installer in console mode 有关 还是我做错了什么

【问题讨论】:

  • 尝试使用 -Dinstall4j.keepLo​​g=true 启动更新程序并检查 %TEMP% 目录中的日志文件。
  • @IngoKegel,我收到没有关闭文件属性的 ShutdownCallingLauncherAction 错误。你知道那是什么意思吗?
  • 我在 GUI 模式下遇到同样的错误,但它会启动新版本的应用程序
  • 尝试使用 -q 标志而不是 -c 标志从更新程序启动安装程序。我们在更新程序的“完成”屏幕上设置了安装程序的参数。
  • @IngoKegel,它可以与 -q 一起使用,但仍然会因 -c 而失败,我发现当它使用 -c 命令运行时,安装程​​序会因 usercanceledException 而失败。这发生在我添加到检查版本的脚本期间。在那里提示用户更新或稍后更新选项。所以在那里用户需要选择选项。当我直接运行安装程序时,它与 -c 一起工作,但通过更新程序运行,它会失败。我不知道如何解决这个问题

标签: install4j


【解决方案1】:

在 Java 6 及更早版本中,子进程无法继承父进程的 I/O,它只能通过管道连接到父进程。这使得用嵌套进程来做控制台 IO 是不可能的。在 Java 7 中,ProcessBuilder 具有允许子进程与父进程共享 I/O 环境的新方法。

install4j 6.1 将利用这些功能。目前没有解决此问题的方法。

【讨论】:

  • 感谢您的信息。 6.1 版何时可用?
猜你喜欢
  • 1970-01-01
  • 2016-11-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多