0

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 自体の外で行う必要があるようですか?

編集

解決策は、Can I install a file using Izpack 5 without it being part of the install.jar built by izpackで説明されている Izpack Loose Pack を使用することです。

しかし、パスに何を設定する必要があるかは非常に混乱します。ドキュメントは、相対リンク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
4

1 に答える 1

0

JVM がインストーラーに組み込まれている場合、プログラムはそれを使用できません。また、JVM がプログラムに組み込まれている場合、インストーラーはそれを使用できません。

ただし、JVM が 1 つしかない場合でも実行できます。これは、JVM をローカル ファイルにコピーすることによって行われます。

そのため、winrun4j を使用してインストーラーを起動すると、組み込み JVM から起動され、インストールの最後に、同じ JVM をプログラム フォルダーに保存する必要があります。

プログラム winrun4j exe は、フォルダに保存した JVM を使用してプログラムを起動できます。これを行うには、winrun4j の「vm.location」を保存された JVM の場所に設定します。

Process:
1) Run the installer exe with the required JVM
2) During the installation save the embedded JVM to a file
3) Once the instillation is complete the program exe can launch using the saved JVM
于 2012-08-27T23:34:45.833 に答える