В Install4j, как установить относительный путь в varfile?

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

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

Спасибо. Ика.


person Ika    schedule 11.12.2011    source источник


Ответы (1)


Вы не можете использовать переменные программы установки в файле переменных. Этот файл считывается при запуске до того, как будут определены какие-либо другие переменные установщика, поэтому у вас не будет возможности сначала настроить переменную «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);
            }
        }
    }
person Ingo Kegel    schedule 12.12.2011
comment
Спасибо, я решил это, создав файл varfile. - person Ika; 18.12.2011