私のコンピューターにはLaunch4Jがあり、すばらしいプログラムです。私が興味を持っている機能の1つは、JREを一般的な.EXEファイルにバンドルする機能です。ただし、これを行う方法を説明しているドキュメントが見つかりません。
JREをEXEにバンドルするにはどうすればよいですか?さらに、コンパクトでポータブルなJREをどこで実行できますか?Oracleのダウンロードリンクは、インストーラパッケージ用です。
私のコンピューターにはLaunch4Jがあり、すばらしいプログラムです。私が興味を持っている機能の1つは、JREを一般的な.EXEファイルにバンドルする機能です。ただし、これを行う方法を説明しているドキュメントが見つかりません。
JREをEXEにバンドルするにはどうすればよいですか?さらに、コンパクトでポータブルなJREをどこで実行できますか?Oracleのダウンロードリンクは、インストーラパッケージ用です。
いくつかの試みの後、私はついに私のアプリケーションにjreをバンドルするための回避策を手に入れました:
アプリをzipファイルとしてパッケージ化し、その中に次のフォルダーを含めます。
containerFolder
|- jre
|-bin (in bin there is java.exe)
|-lib
|- cfg (to save the user configuration, but it's not needed)
|- bin (my application with the .exe and the .jar and all the other stuff)
launch4jのxmlファイルで、次のようにjreを構成します。
<jre>
<path>../jre</path>
<opt>-DgvSIG.confDir=../cfg</opt>
</jre>
ここでの秘訣は、パスがjava.exeファイルへのパスではないということです。jreへのパスは、.exeの位置を基準にしており、java.exeファイルの前の1つのフォルダーを指している必要があります。
私が使用しているjreフォルダーは、Windowsシステムにインストールされているjreフォルダーからのコピーアンドペーストです。
私は次のことを行い、verLaunch4j3.11を使用して動作しました。
Launch4jで必要なすべてのオプションを設定したら、バンドルされたJREパスを「jre」に設定します。
私はこれをやったばかりです。上記は、jreをバンドルする方法を明確に説明しています。
ここでは、私が苦労した経験を共有します。launch4jでラッパーexeを作成した後にインストーラーexeを作成する場合は、launch4jとjreのファイルパスに注意してください。これは、問題を解決するために使用したパスです。
launch4j、bin / jre、resources / bin/jre。
launch4j、bin、およびリソースは同じレベルにあります。
jreは通常、SDKフォルダーにあります。はい、オンラインのリンクはインストーラーですが、インストールすると、JREはローカルディスクに配置されます。鉱山はにあります
${jdk folder}\jre
JREから不要な部分は、本当に必要な場合は手動で削除できます(オンラインで何が利用できるかはわかりません)。
Launch4Jを使用してJavaアプリケーションを特定のJREにバンドルする実例は、https://github.com/vZome/vzome/blob/master/desktop/platform/windows/README.mdにあります。この特定のディストリビューションは、ターゲットプラットフォームで見つかったJREではなく、バンドルされたJREを使用するようにvZomeに要求するように構成されています。
お役に立てれば。