1

ユーザーが 32 ビットまたは 64 ビットの JRE をインストールしている場合、両方のケースで実行できる Windows 用の単一のメディア ファイルを Install4J 経由で作成することは可能ですか?

64 ビット OS 機能を必要としないアプリケーションをラップしているケースがあります。そこで、生成する 32 ビット (Install4J) 実行可能ファイルを選択しました。最終的に、64 ビット JRE がインストールされている 64 ビット Win7にインストールしようとしたときに問題が発生しました。インストーラーが 32 ビット JRE の欠落について苦情を言いました。

Install4J のヘルプ ガイドで、次のことがわかりました。

Windows では、ネイティブ実行可能ファイルは 32 ビットまたは 64 ビット実行可能ファイルのいずれかです。アプリケーションに 64 ビットの JRE が必要な場合は、メディア ファイル用に 64 ビットのインストーラーとランチャーを生成することを選択できます。64 ビットと 32 ビットの両方の JRE で動作するランチャーを作成することはできないことに注意してください。ランチャーは、JVM DLL をロードすることによって JNI インターフェースを使用して JVM を開始するため、アーキテクチャーは同じでなければなりません。32 ビットと 64 ビットの両方の JRE とオペレーティング システムを対象とする場合は、それらに対して異なるメディア ファイルを生成する必要があります。

特定の 64 ビット機能が必要な場合に、太字が参照されていることを願っています。

何か助けはありますか?前もって感謝します。

4

3 に答える 3

1

残念ながら、現時点ではそれは不可能です。32ビットのJREバンドルを使用することをお勧めします。これは、32ビットWindowsと64ビットWindowsの両方で機能します。すでにインストールされている64ビットJREの場合は、それほど重要ではない可能性があります。

于 2012-06-05T20:40:03.803 に答える
0

install4j の新しいバージョンでは、メディア ファイルに32/64 ビットスイッチがあります。install4j 4から始めると思います。

ターゲット環境に、または記述したように、一致する JRE をバンドルする必要があります。インストーラーのサイズが問題にならない場合は、バンドルがより安全な方法です。

于 2014-07-31T13:19:41.187 に答える
0

実際には「ハック」である解決策を見つけることができました。

アイデアは、適切な 32 ビット Java をバンドルとしてパックし、Install4J にユーザーの Java を使用せず、それに依存しないように指示することです。出力として、Install4J は、アプリ自体がインストールされているのと同じレベルに「jre」フォルダーを作成します。そうすることで、ユーザーがマシンに JRE をインストールしていない場合でも、インストーラーとアプリの両方を実行することができます。

このようなInstall4J構成を作成した方法は次のとおりです。

  • 「メディア」、「Windows」の順に開きます (または、Unix または Mac 用の JRE をバンドルする場合は他のもの)。
  • 「バンドルされたJRE」を選択
  • 「次の JRE をバンドルする」をチェックし、必要な Java バージョンを見つけます。
  • 「共有 JRE としてインストール」と「他の適切な JRE が見つからない場合にのみインストール」の両方をオフのままにします (これにより、アプリをインストールしたフォルダーに JRE が配置されます)。
于 2012-06-05T13:42:41.143 に答える