5

次のことを行うインストーラーを構築する必要があります。

  1. 私のjarをクライアントにインストールします。
  2. JRE がインストールされているかどうかを自動検出し (その場合は再インストールしません)、それ以外の場合は、ユーザーが別のボタンをクリックすることなくインストールします。
  3. クライアントの起動時にアプリケーションを自動起動します。
  4. Windows、Mac、Linux で動作します。

どうすればいいですか?

4

6 に答える 6

6

商用ツールに問題がなければ、install4jをお勧めします。1、2、4は簡単ですが、3程度はわかりません。編集:install4jがすべてのプラットフォームでサポートする「サービス」としてアプリをインストールすることで、おそらくそれを達成できます。機能ページからの引用:

install4jは、サービス(デーモン)の生成とインストールを完全にサポートします。サービスの場合、install4jは、Windowsでサービス実行可能ファイルを生成し、Mac OS Xで起動項目を生成し、Unix/Linuxプラットフォームで開始/停止スクリプトを生成します。

編集:#2に関して、JRE検出:install4には、JREのバンドル/検出のための非常に優れた柔軟なオプションがあります。JRE(静的または動的、共有または非共有)を含めるか、既存のJREを使用することを選択できます。フォールバックとして、インストーラー内からJREをダウンロードすることもできます。詳細については、次のドキュメントを確認してください:インストーラーがJREおよびJREバンドルを見つける方法。

install4jでの私の経験についての詳細。)

他のツールについては、SOに関する以前のJavaインストーラーの質問のいくつかを確認できます。

于 2009-06-15T12:51:43.250 に答える
1

limewireのような人気のあるJavaプログラムのビルドスクリプトのソースコードをダウンロードして、その例に従うことをお勧めします。終わり。

...または、私が行ったように行うことができます:

  • Windows上のNSISで必要に応じて、JREの検出と再配布可能ファイルのダウンロード/インストールを実行しました。たぶん、.msiはNSISが作成するinstaller.exeよりも優れています。msiはmacのパッケージに似ているので、適切な更新が可能だと思います。たぶんNSISはMSIを作成します...わかりません。
  • Macは単なるJavaアプリバンドルであり、info.plistでJREおよびその他のJava情報を指定し、オプションで.pkgファイルを作成して、ユーザーにインストーラーを提供し、コマンドラインdmgプログラムを使用してdmgにバンドルすることができます。
  • 私はLinuxをやったことがなく、そうするつもりもありません...ごめんなさい:)

これはすべてかなりの作業でした。私は最初にWindowsの作業を行い、数年後にMacの作業を行いました。

これらすべてをNSISビルドスクリプトとAntに統合できます。install4jを使用しなかった理由を思い出せません。おそらく私は安すぎた:)

于 2009-11-01T05:57:26.847 に答える
1

BitRock InstallBuilderもご覧ください。これは、必要なことを実行するための組み込み機能を提供します。サンプルインストーラーを作成させていただきます。ご連絡ください。

于 2009-07-18T16:16:07.243 に答える
1

InstallAnywhere のような商用ツールはそれを行うことができます。JAR (およびリンクなど) をインストールした後、インストーラーは Java が既にインストールされているかどうかをレジストリで確認し、続行するかどうかを確認できます。インストーラーが必要なすべてのプラットフォームをサポートしている限り、問題はありません。

于 2009-06-15T12:44:33.283 に答える
1

launch4jを使用できますが、Java は自動的にインストールされません。しかし、たとえばJREをパッケージ化することで、それを機能させる方法があるかもしれません。

于 2009-06-15T12:56:35.343 に答える
0

これらすべてのプラットフォームで機能するものは聞いたことがありませんが、JSmoothが役立つ可能性があります (Windows でのニーズに適合します)。2年ほど前から使用していますが、問題なく使えています。

于 2009-06-15T12:46:08.210 に答える