安装Install4j安装程序--version info

时间:2018-05-16 21:38:33

标签: java install4j

我使用install4j创建了一组安装程序,并希望快速检查安装程序可执行文件的版本信息

传统上,这将涉及调用类似installer-name.sh --version

的内容

理想情况下,这可以在不需要解压缩捆绑的JRE的情况下工作,但我注意到即使安装4个安装程序的-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
}

1 个答案:

答案 0 :(得分: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"));

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