Windows デスクトップ アプリケーションのインストールでは、izpack を使用してインストーラーを作成し、winrun4j を使用して exe から呼び出します。また、izpack インストールの一部として、インストール後にアプリケーションを実際に実行するための別の winrun4j ラッパーを追加します。
問題は、win4runj.exe が機能するには正しい Java タイプを使用する必要があることです。つまり、exe が 64 ビットの場合は 64 ビットの jvm を実行する必要があり、exe が 32 ビットの場合は 32 ビットの jvm を実行する必要があります。これはユーザーを混乱させる可能性があるため、winrun4j を利用して組み込みの jvm を使用し、2 つのダウンロードを利用できるようにしました。
- widgetinstaller.exe (32 ビット)
- widgetinstaller64.exe (64 ビット)
しかし、私の混乱は、ダウンロードごとにjvmを1回だけ埋め込みたいのですが、2つのexe(インストーラーとプログラム自体)があるため、これを行う方法がわからないということです。これを行うことができますか?
アップデート
JVM を 2 回インストールすると機能します (一度は izpack でビルドしたときに install.jar に含まれ、一度は zip ファイルに追加されるため、widgetinstaller.exe で使用できます)。
- widgetinstaller.exe は c:\code\widget\installer にあります。
- Oracle から 32 ビット jre をダウンロードします。
- c:\code\widget\32bitJVM にインストールします
- izpack.xml を編集して追加
<file src="C:/code/widget/JVM32bit" targetdir="$INSTALL_PATH"/>
- インストーラー vm.location=32bitJVM/bin/client/JVM.dll を c:\code\widget\installer\widgetinstaller.ini に追加します。
- ウィジェット自体に vm.location=../32bitJVM/bin/client/JVM.dll を c:\code\widget\widget.ini に追加します。
- コードを再構築し、zip ファイルに 32bitJVM を含めて圧縮し、widgetinstaller.zip を作成します (これには、32bitJVM、widgetinstaller.ini、widgetinstaller.exe、widgetinstaller.ico、および install.jar が含まれます)。
- widgetinstaller.exe を解凍し、ダブルクリックしてインストールします。
しかし、JVM が必要なのは 1 回だけです。izpack.xml から削除する必要があることはわかって<file src="C:/code/widget/JVM32bit" targetdir="$INSTALL_PATH"/>
いますが、32bitJVM をプログラム インストール フォルダーにコピーするにはどうすればよいですか?
その同じ JVM をプログラム フォルダに保存する必要があります。
これは izpack 自体の外で行う必要があるようですか?
編集
しかし、パスに何を設定する必要があるかは非常に混乱します。ドキュメントは、相対リンクhttp://izpack.org/documentation/installation-files.html#the-packs-element-packsを挿入することを誤って暗示しています。
例
izpack install.xml は C:\code\Widget\installer にあります
<pack name="Base" loose="true" required="yes" preselected="yes">
<description>JVM</description>
<file src="C:\Code\Widget\JVM" targetdir="$INSTALL_PATH"/>
</pack>
パッケージをアップする場合、izpack のインストールには次のものが必要です。
JVM
install.jar
setup.exe