【问题标题】:Have Install4j installer display --version info让 Install4j 安装程序显示 --version 信息
【发布时间】:2018-05-16 21:38:33
【问题描述】:

我使用 install4j 创建了一组安装程序,并且想要一种快速检查安装程序可执行文件的版本信息的方法

传统上,这将涉及调用installer-name.sh --version之类的东西

理想情况下,这无需解压捆绑的 JRE 即可工作,但我注意到即使是 install4j 安装程序的 -h 帮助也会解压 JRE,所以我假设这不是一个选项...

我想知道的是:

  • 有没有办法指定像-h这样的选项,它执行一项任务(如打印版本信息),然后优雅退出
  • 或者,如果我需要自己使用context.getExtraCommandLineArguments() 解析此选项,有没有办法在某个操作运行后成功退出安装,而无需强制“失败时退出”。
    • 我想避免这样一种情况,即我有一个操作来处​​理 --version,然后我的其余安装在一个条件组中。

==============

要清楚我的最后一点是我想要一个解决方案,例如(将 install4j 安装操作作为 Java 函数):

if(versionRequested){
  printVersion();
  return;
}
//all the rest of my installation actions

而不是:

if(versionRequested){
  printVersion();
}
else{
  //all the rest of my installation actions
}

【问题讨论】:

    标签: java install4j


    【解决方案1】:

    在安装程序的“启动”节点,用脚本添加“运行脚本”动作

    if (Arrays.asList(context.getExtraCommandLineArguments()).contains("--version")) {
        System.out.println("Version " + context.getCompilerVariable("sys.version"));
        context.finish(0);
    }
    return true;
    

    在 Windows 上,System.out.println 不会打印到控制台,因为安装程序是一个 GUI 应用程序,所以您必须调用

    Util.showMessage("Version " + context.getCompilerVariable("sys.version"));
    

    在控制台模式下也能正常运行。

    【讨论】:

      猜你喜欢
      • 2013-07-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多