まず、ほとんどのパッケージ ソリューションには、インストーラー内に JRE をパックするオプションがあります。そのため、exe、bin、rpm などの実行可能ファイルは、適切な JRE とともに出荷されます。これは、パーミッション、JRE のインストール場所、JRE のバージョンなど、JRE がターゲット システムで利用可能であると仮定した場合に発生する可能性のある予期しない問題の数を最小限に抑えるため、より良いアプローチです。
実行可能ファイルは、同梱されていた JRE を解凍し、Java アプリケーション (インストーラー) を起動します。
フリー/オープン ソースと商用の両方で、多くのマルチプラットフォーム パッケージ ソリューションがあります。
最も人気のあるコマーシャルは、FlexeraのInstallAnywhereです。便利な IDE、XML ベースの Bean 構成 (Bean を UI ベースのインストール プロセス中の 1 つのステップまたは画面と考えてください)、およびインストール中に実行する必要がある多くのカスタム チェックが付属しています。企業内の多くのボックスにインストールを出荷するために、応答ファイルを使用してサイレント インストールを作成できます。また、カスタム ロジックを実行するインストール用のカスタム Bean を作成することもできます。
Install4Jも商用ソリューションです。必要なすべてのプラットフォームをサポートしていないため、試していません。
もう 1 つの商用インストール ウィザードは、Denova のJExpressです。また、完全にカスタマイズ可能で、InstallAnywhere と同じプラットフォーム サポート範囲を持ちます。完全な機能スイートが付属していますが、カスタム インストールの開発はあまり便利ではなく、Windows OS との統合も少なくなります (私が遊んでいる間は、私はレジストリ チェックを実行できず、結果に基づいてアクション A またはアクション B を実行します)。
私が試したオープンソースのパッケージ化ウィザードはlzpack です。これは優れた柔軟性を備えていますが、適切なドキュメントがないため、作業を完了するのに時間がかかります。
InstallJammerは別のオープン ソースですが、すべてのプラットフォームをサポートしているわけではなく、基本的な Windows と Linux プラットフォームのみをサポートしていますが、このプロジェクトは中止されたと思います。
幸運を!