web-dev-qa-db-ja.com

Java EEアプリケーションをインストールするための適切なInstallAnywhereの代替品は何ですか?

Java EEアプリケーションのインストーラーとして、 InstallAnywhere を置き換えることをお勧めする(商用または無料の)インストーラーツールはどれですか。それについてあなたは特に何が好きですか、そしてその欠点は何ですか?

いくつかの要件:

  • インストール手順の一部として、 running custom Java code をサポートする必要があります
  • Windows Server 2008などの最新の64ビットバージョンを含むWindowsをサポートする必要があります。他のターゲットオペレーティングシステムのサポートはプラスです
  • バンドルされたアプリケーションサーバー( Resin または Tomcat など)をWindowsのサービスとしてインストールできる必要があります
  • ファイルのコピーと移動、設定ファイルの編集、ZIPの抽出などの基本的なものをサポートする必要があります。
  • (特定のバージョンのJREのバンドルをサポートする必要があります。少なくとも、抽出するZipを含めることにより)

編集:さらにいくつかのポイント:

  • ターゲットマシンにプリインストールされているJRE(または他のサードパーティのランタイム環境やライブラリ)に依存しないことが望ましい。つまり、独立したWindows .exe(または.msi)を生成できます。
  • Linux、Windows、またはMacでインストーラー開発を行えるように、ツールはクロスプラットフォームであることが望ましい。
  • インストーラーをまとめるためのまともなGUIが必要です。ただし、それが完了したら、GUIをスキップして、インストーラーのビルドを自動ビルドプロセスの一部にすることが必須です。
45
Jonik

この場合、残念ながら、SOは、私たちがまだ知らないことをあまり知らせませんでした(実際、最終的に選択したツールは、どの回答にも記載されていませんでした)。しかし、私は後で他の人に役立つかもしれないので、ここに私たちの経験を投稿してください。

次のインストーラーツールを(迅速に)評価しました。ほとんどの場合、それらのWebサイトを見て、Web上の他の情報を参照しています: 実際のインストーラー高度なインストーラーBitRock InstallBuilderInno SetupInstall CreatorInstaller VISE for WindowsInstallShieldinstall4jIzPack[〜#〜] nsis [〜#〜]openInstallerScriptlogic MSI StudioSmart Install MakerSymantec Wise Installation Studio 、および WiX

私たちは早い段階でそれらのほとんどを選別し、より詳細な評価のための2つのオプションを最終的にリストに入れました:BitRock InstallBuilderおよびinstall4j。これらのツールについて、評価版をダウンロードし、プロトタイピングを行って、私たちにとって最も重要なものが本当にサポートされているかどうか、および動作させるのがどれほど簡単か難しいかを確認しました。

どちらのオプションも多くの点で優れていました(両方ともInstallAnywhereの優れた代替手段のように思われました)。

  • 彼らはあなた自身のグラフィックスなどで簡単にカスタマイズできる完全にネイティブできれいなWindows .exeインストーラーを生成します。
  • Antからインストーラーのビルドがトリガーされるように、両方のツールを簡単に自動化できます。 (install4jを使用すると、文字通りわずか5分で 学習する にしてから実装します。)
  • どちらの会社も良いサポートをしているようです(まあ、少なくとも彼らの製品を評価する見込み客にとっては;-)特にBitRockからは非常に迅速な返信がありました。

次の点で、install4jは私たちのニーズに対してBitRockよりも優れているように見えました(もちろん、これらの多くは主観的であるため、YMMVです)。

  • install4jは、カスタムJavaコードの実行をサポートしています。システムにプリインストールされているJREがあるかどうかに関係なく、インストール中いつでも実行できます。
  • BitRockはよりハードコーディングされた一連のインストール手順を使用しますが、install4jはより柔軟です。 install4jでは、カスタム画面とフォームの追加(カスタムJavaコードありまたはなし)、ユーザーへの入力の要求など)は、ファイルをインストールする前でも後でも、いつでも行うことができます。
  • また、ターゲットシステムにコピーするファイルセットの定義や、設定ファイルの特定の文字列を置き換えるインストール手順の追加など、いくつかの基本的なことは、install4jでやや簡単に見えました。
  • install4jはJREバンドルのサポートが向上しました
  • Linuxでインストーラーを作成する場合、install4j IDEのルックアンドフィールは、BitRockのルックアンドフィールよりも優れていました(より「ネイティブ」)
  • (install4jの ライセンスオプション の方が優れていました。すべての開発者の名前付きライセンスまたは高価な「サイトライセンス」よりもいくつかのフローティングライセンスを強く推奨しました)

したがって、最終的にはinstall4jを使用しました。印象的だった理由の詳細を次に示します。

  • インストーラを組み合わせるIDEは非常にシンプルで使いやすいです。ドキュメントを見なくても、必要なほとんどのことをすばやく実行する方法を理解できました。そして、私がドキュメントで何かをチェックしなければならなかったとき(例えば、 インストーラー変数 を参照する方法;どのように カスタムを書き始めるJava install4j API )、必要なものを見つけるのに時間がかかりませんでした。
  • インストール手順中に画面とアクションを完全にカスタマイズし、カスタム画面とアクション( Java API に対してコード化)をいつでも追加できます。古いInstallAnywhereインストーラーの既存のカスタムJavaコードを再利用する必要があるため、これは私たちにとって重要でした。
  • 細かい部分では、install4jはJava開発者に理想的です。たとえば、ユーザー入力をチェックする検証スクリプトを追加する場合、install4j IDE自体、using plain old Java、IntelliJ IDEAに似たコーディング支援付き。
  • Install4jフローティングライセンスのコストは、ツールがどれほど優れているか(およびInstallAnywhereの高額な価格設定と比較して実に安い価格であることを考慮して)妥当であると判断しました...)
  • 要するに、Javaアプリケーションをデプロイするために利用できる最高のインストーラーツールのように思われました。
56
Jonik

私たちは BitRock InstallBuilder を作成しました。これは、InstallAnywhereと、特にその従兄弟(現在は機能しなくなった)InstallShield MPでのイライラした経験の後にクロスプラットフォームのインストールツールです。クライアントの半数以上がこのツールを使用してJavaベースのソフトウェアをパッケージ化していますが、このツールはJavaベースではなくネイティブです。つまり、ネイティブのルックアンドフィール(Vista、GTK、Qtなどを含む)などの多くの利点があり、インストールの前に自己解凍を行う必要がない(起動が速く、スペース要件が少ない)ため、カップルについて言及する必要があります。特定の質問に答えるには:

  • Javaコードのインストールの一部として、特定のページが表示されたとき、ファイルがコピーされたとき、アンインストール時になど)の呼び出しをサポートします。コードはコンパイルされません。インストーラーでは、それは外部から呼び出すことができ、結果はインストーラーで使用されます。必要なコードの種類についてより具体的な場合は、特定のサンプルコードを提供できます。他のインストーラに手動で追加する必要があるため、最初にそのコードを記述する必要がない場合があります。
  • 64ビットおよびWindows 2008を含むWindowsのすべてのバージョンをサポートします(複数のお客様がインストーラーを使用してこれらのプラットフォームで認定されています)
  • Tomcat、Resin、JBossなどのバンドルアプリケーションサーバーをサポートしています。作成したスタックの例については、 BitNami をご覧ください。
  • ファイルのコピーと移動、構成ファイルの値の置換、ファイルの解凍、およびその他のほとんどの一般的なインストール機能をサポートしています。私たちの原則の1つは、インストーラーが一般的なインストールアクションの組み込みサポートを提供し、クライアントの製品に固有の外部コードを呼び出すための簡単でクリーンなインターフェースを備えていることです。
  • ご存知のように、JREのバンドルをサポートしています。JREディレクトリをバンドルし、起動スクリプトでJava_HOMEに適切な値を設定するだけで十分です。

MySQL、Samsung、Motorola、GitHubなどの一部の customers をご覧ください。InstallBuilderは商用製品ですが、オープンソースプロジェクトには無料のライセンスを提供しており、小規模ビジネスやmicroISV。

8
Daniel Lopez

私の会社ではInstallAnywhereを約6年間使用していますが、次に進むことにしました。その理由は2つあります。

まず、彼らの価格設定は絶対的な高速道路の強盗であり、ライセンスはINstall4JやBitRockのような直接の競合他社に比べて厳しく制限されています。

InstallAnywhereに関する私のもう1つの問題は、製品のメンテナンスが最小限に抑えられていることです。私は多くの異なるバージョンを通じて6〜7年間製品を使用しており、バグはめったに修正されておらず、新しい機能を期待することはできません。基本的に期待できるのは、新しいバージョンのWindows/Macのサポートが追加されることです。サポート料金はかなり高額ですが、実際にサポートリクエストを実施したことはありません。私がこの製品を最初に購入したとき、それはこの製品だけに焦点を合わせていたZeroGという会社からのものだったと思います。彼らは実際に製品を維持し、改善しました。当時はそれが唯一の真のチケットであり、彼らは競争を飛び越えていました。

その後、MacrovisionとFlexeraが買収しました。 ZeroGがこの製品を販売して以来、それは所有会社にとっては補助的な製品であり、その焦点は不十分でした。同社が実際に製品を維持したかったのではなく、一連の製品を完成させるために購入されたようです。

注意が必要です。これらの製品は、あなたと結びつく可能性があるため、慎重に評価してください。私たちはもっと早く製品を離れたはずですが、インストーラーだけでなく、製品の機能/制限に基づいて自動更新スキームを設定することに多くの労力を費やしました。これを新製品で再現。

私の見解ですが、InstallAnywhereはお勧めしません。

7
springcorn

izPack を保証できます。これはAntベースであるため、Antインストールをパッケージ化でき、Antインストールには、Ant build.xml内に記述されたカスタムタスクやスクリプトを含めることができます(たとえば、Groovy、Beanshell、またはBSF対応のスクリプト言語を使用)。したがって、カスタマイズ可能な要件をカバーします。

私は過去に上記すべて-unzipping/services/custom code-に使用しました。これはマルチプラットフォームですが、上記の特定のインスタンス(64ビットWindows)については保証できません。ただし、Javaを実行している場合は問題ありません。

頭痛の種はJREです。これを実行するには、明らかにsomeJREが必要です。ただし、izPack内の特定のJREインストールをパックして実行できるはずです。

7
Brian Agnew

現在、スイングアプリケーションの配布を処理するために GetDown を使用しています。 Tomcatを使用して更新を配布し、 GetDown を使用してそれらの更新をダウンロードします。これは本当に柔軟で強力で、Java WebStartよりもはるかに優れています。変更のチェックサムを生成するため、帯域幅を節約し、変更されたファイルのみをダウンロードします。

良いチュートリアル: http://www.hascode.com/2012/05/creating-updatable-Java-applications-using-getdown-and-the-getdown-maven-plugin/

プロジェクトのウェブサイト: https://github.com/threerings/getdown

4
Heidarzadeh

マルチプラットフォーム環境での展開は、常にトラブルの大きな原因です。最適なソリューションは、RPM、DEB、MSIなどのすべてのプラットフォーム用のネイティブパッケージの作成を対象とすると考えられます。無人でインストールすることもできます。

開発者は、アプリケーションを自動修復し、インストールなしで実行できるようにする必要があります。

そうすることで、展開作業を最小限に抑えることができます。

私はこれがあなたが尋ねるような完全な解決策ではないことを知っていますが、時々あなたはこの方法でより良い結果を得るかもしれません。

これらをフォローすると、Linuxで無料のアップデートサービスを利用できることを覚えておいてください。

私はまだマイクロソフトがMSIに似たものを追加することを望みます(そしてそれはあなたがそれらに登録することを要求しないでしょう)。一方、Windowsの場合は、オープンソースとしてリリースされたばかりのGoogleアップデータを確認できます- http://code.google.com/p/omaha/

彼らはMac OS用の同様の製品をリリースしました http://code.google.com/p/update-engine/ しかし、これら2つから1つの製品を作成することを考えていなかったのは悲しいことです。

3
sorin

SetupBuilder Gradle Plugin を試して、シンプルなGradleビルドスクリプトでネイティブ* .msiインストーラーを作成できます。

  • これは無料。
  • 32ビットおよび64ビットのWindowsをサポートします。 LinuxおよびOSX。
  • Java VM WindowsおよびOSXの場合、プリインストールされたJava VMは必要ありません。
  • Javaコードをインストールの前または後に実行できます。
  • Windowsサービス/デーモンを作成できます。
  • GUIはありませんが、Gradleを使用しています。ビルドスクリプト言語としてすでにGradleを使用している場合は、非常に簡単です。
2
Horcrux7

また、オープンソースのマルチプラットフォームインストーラーのいくつかを公開しました。これが私のコメントです:

  1. BitRock InstallBuilder :オープンソースプロジェクトで使用するための無料ライセンスを提供するため、無料およびオープンソース開発者にのみ最適です。
  2. InstallJammer :優れた無料のオープンソースマルチプラットフォームインストーラー。 InstallJammerから実行可能なビルドをダウンロードするとすぐに、アンチウイルスプログラムがすぐにそれを削除することを心配するのは1つだけです。どういうわけか、InstallJammerから構築されたファイルは、誤検知としてキャッチされています。公開する前に、もう少しセキュリティ証明書を処理する必要があります。
  3. Izpack :無償のオープンソースマルチプラットフォームインストーラー。アリに慣れていない人にとっては少し面倒かもしれません。 PackJacket のようなGUIフロントエンドで使用すると素晴らしい場合があります。
1
angel

あなたは興味があるかもしれません launch4j

1
dfa

http://sourceforge.net/projects/cminstall/ にあるcmInstallを参照することをお勧めします

ほぼすべての要件を満たし、オープンソースです。さらに、私はその開発者の1人です:)。

  1. [はい]インストール手順の一部として、カスタムJavaコードの実行をサポートする必要があります。
  2. [yes] Windows Server 2008などの最新の64ビットバージョンを含むWindowsをサポートする必要があります。他のターゲットオペレーティングシステムのサポートはプラスです
  3. [サードパーティのライブラリを使用することで簡単に実行できます。例:タヌキソフトウェア]バンドルされたアプリケーションサーバー(ResinやTomcatなど)をWindows上のサービスとしてインストールできる必要があります
  4. [はい]ファイルのコピーと移動、設定ファイルの編集、ZIPの抽出などの基本的なものをサポートする必要があります。
  5. [はい-または、プログラムでダウンロードして解凍することができます]特定のバージョンのJREのバンドルをサポートする必要があります。少なくとも、抽出するZipを含めることで

    6. [いいえ-jdk 1.6がインストールされている必要があります。将来的には.exeまたは.msiのサポートが計画されています]ターゲットマシンにプリインストールされているJRE(または他のサードパーティのランタイム環境やライブラリ)に依存しないことが望ましいです。つまり、独立したWindows .exe(または.msi)を生成できます。

  6. [yes]インストーラーの開発をLinux、Windows、またはMacで実行できるように、ツールはクロスプラットフォームであることが望ましいです。

    7. [いいえ-cminstallフレームワークは「開発者ベース」ですが、使いやすいです。チュートリアルは http://sourceforge.net/project/showfiles.php?group_id=250019&package_id=305489 からお読みください。そして、インストーラーを構築するのがいかに簡単か見てください!]できれば、インストーラーを組み立てるためのまともなGUIが必要です。ただし、それが完了したら、GUIをスキップして、インストーラーのビルドを自動ビルドプロセスの一部にすることが可能でなければなりません。

1
Flueras Bogdan

ジョニック、あなたの経験のそのような詳細なフィードバックを投稿してくれてありがとう。あなたはいくつかの良い点を上げたので、私はフォローアップの回答を書きたかったのです。

特定の基本要件が満たされると(残念ながら、InstallAnywhereはこれ以上機能しなくなります)、実際には「悪い」ツールや「良い」ツールではなく、一部のプロジェクトにより適したツールがあります。すべてのオプションを注意深く調査したようで、install4jはプロジェクトに適しています。以前のインストーラーから再利用したい既存のJavaコードベースがあるので、これはおそらく良い選択です(ただし、InstallBuilderではそのコードの一部は不要になると思いますが、 )

InstallBuilderに関しては、<insertBefore>タグを使用して画面シーケンスをカスタマイズすることをサポートしています(おそらくこれをより適切に文書化する必要があります)。 JREをバンドルするのも簡単です(ほとんどの場合、Java /フォルダーを含むだけです)が、私はあなたの批判は妥当だと思います。サポートされているすべてのプラットフォームでのドラッグアンドドロップ。ロードマップには、あなたが言及している領域のGUIを改善しているところがあります。おもしろいのは、多くのお客様がXML形式を使いやすいため、プログラミングエディタ(HTMLを編集しているかのように)を使用して編集することを好むということです。

最後に、ライセンスに関して、現在のモデルでは、追加のプログラマーがインストーラーをビルドするだけ(設計ではない)である場合、またはビルドまたは継続的インテグレーションマシン用に追加のライセンスを購入する場合、追加のライセンスを購入する必要はありません。いずれにせよ、install4jの2つのフローティングライセンスは、BitRockの完全なエンタープライズサイトライセンスよりも高価です:)

フィードバックをありがとう

1
Daniel Lopez

複数の人が IzPack を推奨するのを見てきましたが、それがあなたの要件を満たしているかどうかは正直わかりません。それは少なくとも無料です:)

0

Sunは、オープンソースのインストーラーを提供しています。

OpenInstaller

リクエストされた機能はすべてサポートされていると思います。
しかし、私には設定が少し難しいようです。

しかし、何を推測しますか?GUIだけでなく(疑似グラフィック)CLIも備えています。
素敵なスクリーンショットと情報 ここ