0

GUI とコマンド ラインの両方から実行している install4j プロジェクトがあります。ご存じかもしれませんが、インストーラーのパラメーターを varfile で渡すことができます。my.variable=${installer:installerDir}\a.txt の形式で varfile に相対パスを指定する簡単な方法があるかどうかを知りたいです。

ファイル名のみを指定するようにユーザーに依頼し、ディレクトリ パスをコードに挿入する回避策を確認できます。しかし、これが可能かどうかはまだ知りたいです。

ありがとう。イカ。

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 に答える