次のことを行うインストーラーを構築する必要があります。
- 私のjarをクライアントにインストールします。
- JRE がインストールされているかどうかを自動検出し (その場合は再インストールしません)、それ以外の場合は、ユーザーが別のボタンをクリックすることなくインストールします。
- クライアントの起動時にアプリケーションを自動起動します。
- Windows、Mac、Linux で動作します。
どうすればいいですか?
次のことを行うインストーラーを構築する必要があります。
どうすればいいですか?
商用ツールに問題がなければ、install4jをお勧めします。1、2、4は簡単ですが、3程度はわかりません。編集:install4jがすべてのプラットフォームでサポートする「サービス」としてアプリをインストールすることで、おそらくそれを達成できます。機能ページからの引用:
install4jは、サービス(デーモン)の生成とインストールを完全にサポートします。サービスの場合、install4jは、Windowsでサービス実行可能ファイルを生成し、Mac OS Xで起動項目を生成し、Unix/Linuxプラットフォームで開始/停止スクリプトを生成します。
編集:#2に関して、JRE検出:install4には、JREのバンドル/検出のための非常に優れた柔軟なオプションがあります。JRE(静的または動的、共有または非共有)を含めるか、既存のJREを使用することを選択できます。フォールバックとして、インストーラー内からJREをダウンロードすることもできます。詳細については、次のドキュメントを確認してください:インストーラーがJREおよびJREバンドルを見つける方法。
他のツールについては、SOに関する以前のJavaインストーラーの質問のいくつかを確認できます。
limewireのような人気のあるJavaプログラムのビルドスクリプトのソースコードをダウンロードして、その例に従うことをお勧めします。終わり。
...または、私が行ったように行うことができます:
これはすべてかなりの作業でした。私は最初にWindowsの作業を行い、数年後にMacの作業を行いました。
これらすべてをNSISビルドスクリプトとAntに統合できます。install4jを使用しなかった理由を思い出せません。おそらく私は安すぎた:)
BitRock InstallBuilderもご覧ください。これは、必要なことを実行するための組み込み機能を提供します。サンプルインストーラーを作成させていただきます。ご連絡ください。
InstallAnywhere のような商用ツールはそれを行うことができます。JAR (およびリンクなど) をインストールした後、インストーラーは Java が既にインストールされているかどうかをレジストリで確認し、続行するかどうかを確認できます。インストーラーが必要なすべてのプラットフォームをサポートしている限り、問題はありません。
launch4jを使用できますが、Java は自動的にインストールされません。しかし、たとえばJREをパッケージ化することで、それを機能させる方法があるかもしれません。
これらすべてのプラットフォームで機能するものは聞いたことがありませんが、JSmoothが役立つ可能性があります (Windows でのニーズに適合します)。2年ほど前から使用していますが、問題なく使えています。