在Install4j中,如何在varfile中设置相对路径?

时间:2011-12-11 07:07:44

标签: install4j

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

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

感谢。 IKA。

1 个答案:

答案 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);
            }
        }
    }