JRE をバンドルできる唯一の方法は、Launch4JとInno Setup Compilerを使用することでした。
まず、jre6
出力ファイル (.exe) と同じディレクトリにフォルダー (たとえば) を作成します。
次に、JRE をシステムからjre6フォルダーにコピーします。
次に、Launch4J を開き、バンドルされた JRE パスを設定します。入力するだけjre6
です。次に、[ビルド] ボタンをクリックします (もちろん、他のすべてのパラメーターを入力した後ですが、 [ JRE ] タブ自体に入力する必要がある値は、バンドルされた JRE パスの値だけです)。
私はそれが機能することを期待していましたが、その後.exeを新しい場所に移動すると(jre6フォルダーと同じ場所に配置されなくなります)、This application was configured to use a bundled Java Runtime Environment but theアプリケーションを実行しようとすると、ランタイムが見つからないか壊れているというエラーが表示されます...
私はこれを一日中いじっていましたが、 Launch4Jに JRE を .exe ファイルに含める方法がありませんでした。彼らのドキュメントはこの問題をまったく暗示していないように見えるので、私の意見では本当に貧弱です。
そこで、私が解決したのはInno Setup Compiler (ISC)を使用することでした。このアプリは、.exe を Windows インストーラー ファイルとしてラップするために使用されます。そこで、JRE をインストーラー パッケージにコピーする設定を ISC スクリプトに追加しました。スクリプト ([Files]
セクション内) に追加した行は次のとおりです。
Source: "M:\Netbeans\MyApp\jre6\*"; DestDir: "{app}\jre6\"; Flags: recursesubdirs createallsubdirs
...ちょっとした回避策ですが、うまくいきました。
上記のすべての手順を繰り返すと、ソートされるはずです。