我有一个从 GUI 和命令行运行的 install4j 项目。您可能知道,可以在 varfile 中传递安装程序参数。我想知道是否有一种简单的方法可以在 varfile 中以以下形式给出相对路径:my.variable=${installer:installerDir}\a.txt
我可以看到一种解决方法,我可以要求用户仅指定文件名,然后将目录路径放在代码中。但我仍然想知道这是否可能。
谢谢。伊卡。
我有一个从 GUI 和命令行运行的 install4j 项目。您可能知道,可以在 varfile 中传递安装程序参数。我想知道是否有一种简单的方法可以在 varfile 中以以下形式给出相对路径:my.variable=${installer:installerDir}\a.txt
我可以看到一种解决方法,我可以要求用户仅指定文件名,然后将目录路径放在代码中。但我仍然想知道这是否可能。
谢谢。伊卡。
您不能在变量文件中使用安装程序变量。该文件在定义任何其他安装程序变量之前在启动时读取,因此您没有机会首先设置“installerDir”变量。
我在这里看到的唯一选择是使用你自己的令牌,比如说
my.variable=@installerDir@\a.txt
并在“启动”节点中使用“运行脚本”操作将该令牌替换为特定目录。这里有一些检查所有定义的变量:
String installerDir = null;
InstallerContext context = null;
for (Object o : context.getVariableNames()) {
String variableName = (String)o;
Object variableValue = context.getVariable(variableName);
if (variableValue instanceof String) {
String replacedValue = ((String)variableValue).replaceAll("@installerDir@", installerDir);
if (!replacedValue.equals(variableValue)) {
context.setVariable(variableName, replacedValue);
}
}
}