0

我有一个从 GUI 和命令行运行的 install4j 项目。您可能知道,可以在 varfile 中传递安装程序参数。我想知道是否有一种简单的方法可以在 varfile 中以以下形式给出相对路径:my.variable=${installer:installerDir}\a.txt

我可以看到一种解决方法,我可以要求用户仅指定文件名,然后将目录路径放在代码中。但我仍然想知道这是否可能。

谢谢。伊卡。

4

1 回答 1

0

您不能在变量文件中使用安装程序变量。该文件在定义任何其他安装程序变量之前在启动时读取,因此您没有机会首先设置“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);
            }
        }
    }
于 2011-12-12T08:57:35.227 回答