繁体   English   中英

izpack安装程序输入属性文件没有输入密码字段

[英]izpack installer input properties file not having input for password field

我正在使用Izpack为我的Java项目创建安装程序。 现在,我的要求是,我想通过从属性文件而不是从用户界面获取用户输入来运行安装程序。

在浏览Izpack文档时,我发现可以使用以下两个命令来做到这一点。

-options-template :生成一个属性文件,其名称在args [1]中指定。

java -jar installer.jar -options-templateinputs.properties

-options :运行安装,同时从args [1]中指定的属性文件中读取属性。

java -jar installer.jar -optionsinputs.properties

但是,当我使用第一个命令导出inputs.properties文件时,它没有安装程序面板中的一个密码字段。 因此,当我尝试将输入的值放入inputs.properties后,使用第二条命令运行安装程序时,该密码值出现错误。

即使在inputs.properties中手动添加了密码字段名称和值之后,安装程序也不会从属性文件中查找该值。

我成功运行了安装程序,并从xml文件获取了输入,并且它也有密码字段。 但是我的要求是在属性文件中提供输入。

任何帮助都会对我有很大帮助。

谢谢

在版本5.0中,这被报告为开放缺陷。 另一个用户在4.x中也指出存在此问题。 我也无法使用带有-options标志的版本4.3.5进行无头安装。 IzPack报告的缺陷

请创建“ com.izforge.izpack.panels.userinput.UserInputPanelConsole”类,请注意打包路径。

公共类UserInputPanelConsole扩展了UserInputPanelConsoleHelper {

public UserInputPanelConsole(Resources resources, ConsolePanels panels) {
    super(resources, panels);
}

public boolean runConsoleFromProperties(InstallData installData, Properties properties){
  boolean result = super.runConsoleFromProperties(installData, properties);
  for (Map.Entry<Object, Object> entry : properties.entrySet()) {
      if (properties.containsKey(entry.getKey())) {
          String value = (String) entry.getValue();
          if(!StringsUtil.isEmptyString(value)){
              installData.setVariable(entry.getKey().toString(), value);
          }
        }
  }
  return result;
}

}

就像您看到的那样,您强制设置installData变量,这将远离password字段设置变量。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM