我有一个install4j项目,我从GUI和命令行运行。 您可能知道可以在varfile中传递安装程序参数。 我想知道是否有一种简单的方法在varfile中给出一个相对路径: my.variable = $ {安装程序:installerDir} \ A.TXT
我可以看到一种解决方法,我可以要求用户仅指定文件名,我将把目录路径放在代码中。但我仍然想知道这是否可能。
感谢。 IKA。
答案 0 :(得分:0)
您不能在变量文件中使用安装程序变量。在定义任何其他安装程序变量之前,将在启动时读取该文件,因此您将无法首先设置“installerDir”变量。
我在这里看到的唯一选择是使用你自己的令牌,比如说
my.variable = @ installerDir @ \ A.TXT
并在“Startup”节点中使用“运行脚本”操作将该令牌替换为特定目录。这里有一些检查所有已定义的变量:
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);
}
}
}