1

install4j を使用して、プロパティ ファイルを検索し、インストール ディレクトリの Windows ショート ファイル名/パスに置き換える必要があるアプリケーションのインストーラーをビルドしています。私はすでに、次のことを行う「テキスト ファイルの変更」アクションを持っています。

Search Value:  INCHOME=C:\dev\inc\1.0
Replace Value: INCHOME=${installer:sys.installationDir}

私の場合、これは通常 C:\Program Files\InControl になります。

${installer:sys.installationDir} の値を変更できるようにする必要があり、その結果、"C:\Program Files\InControl" を "C:\PROGRA~1\InControl" のようなものに変更する必要がありますが、これはもちろん状況によって異なります。これに関する Windows の規則。

次の場所で入手できるソリューションを読みました。

http://dolf.trieschnigg.nl/eightpointthree/eightpointthree.html

これは、一般的に受け入れられている/使用されているソリューションのようです。install4j にはこれを処理するための組み込み機能がありますか、それともカスタム コードとしてこのようなものを含める必要がありますか?

カスタム コードとして含める必要がある場合、ネイティブ Windows ライブラリを含めるにはどうすればよいですか?

com.install4j.api.windows.WinFileSystem やその他の場所には何も見つかりませんでした。

4

2 に答える 2

1

APIには含まれていませんが、使用できます

com.install4j.runtime.installer.platform.win32.FolderInfo.getShortPathName(String longPathName)
于 2012-04-15T14:31:25.453 に答える
0

OK、うまくいきました。上記のパスのわずかなバリエーションです。jad を使用してクラスを逆コンパイルし、それを見つける必要がありましたが、次のように (FileInfo クラスを追加して) 機能しました。

import com.install4j.runtime.installer.platform.win32.*;

String incHome = (String)context.getVariable("sys.installationDir");
String incHomeShort = FolderInfo.getShortPathName(incHome);

context.setVariable("incHomeShort", incHomeShort);

ありがとう!

于 2012-04-16T17:28:22.093 に答える