В Install4j, как установить относительный путь в varfile? - PullRequest
0 голосов
/ 11 декабря 2011

У меня есть проект install4j, который я запускаю из графического интерфейса и командной строки.Как вы, возможно, знаете, можно передать параметры установщика в varfile.Я хотел бы знать, есть ли простой способ дать относительный путь в файле varfile в виде: my.variable = $ {installer: installerDir} \ a.txt

Я могу увидеть обходной путьможет попросить пользователя указать только имя файла, и я добавлю путь к каталогу в коде.но я все еще хотел бы знать, возможно ли это.

Спасибо.Ika.

1 Ответ

0 голосов
/ 12 декабря 2011

Вы не можете использовать установочные переменные в файле переменных. Этот файл читается при запуске до того, как будут определены любые другие переменные установщика, поэтому у вас не будет возможности сначала установить переменную "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);
            }
        }
    }
...