免責事項:私の会社はinstall4jを開発しています。
まず第一に、install4jは商用ツールであるため、NSISとはかなりの違いがあります。その他の主な違いは次のとおりです。
- install4jは、Windows、Mac OS X、およびすべてのPOSIX互換のLinuxおよびUnixプラットフォーム用のマルチプラットフォームインストーラービルダーです。
- install4jの主な焦点は、Javaベースのアプリケーションをインストールすることです。たとえば、ランチャーとサービスの作成を処理し、JREをバンドルするためのいくつかの戦略を提供します。Javaアプリケーションに必要な多くのものは、箱から出してすぐに機能します。
- install4jは、使いやすさに重点を置いた独自のIDEを提供します
- スクリプトはJavaで行われます。IDEは、コード補完とエラー分析を備えた組み込みエディターを提供します。アクション、画面、およびフォームコンポーネントには、インストーラーの動作をカスタマイズできるさまざまな「スクリプトプロパティ」があります。
install4jの場合、私はあなたの単一の要件に対処することができます:
マシン(32ビットまたは64ビット)にJREがあることを確認します
メディアウィザードで、JREバンドルを選択します。「動的バンドル」オプションを選択すると、適切なJREが見つからない場合にのみダウンロードされます。

Tomcatのインストール(32または64ビット)
既存のTomcatインストールのルートディレクトリを配布ツリーに追加することをお勧めします。
サービスに関しては、TomcatディストリビューションのTomcatサービスランチャーを使用するか、install4jでサービスランチャーを作成できます。どちらの場合も、サービスをインストールするために「サービスのインストール」アクションを使用できます。
生成されたサービスには、更新インストーラーが実行中であることを認識し、新しいファイルをインストールする前に自動的にシャットダウンするという利点があります。

OracleまたはSQLServerでデータベースを作成します(このためのSQLスクリプトを提供します)
これらのスクリプトを実行するには、「実行可能ファイルまたはバッチファイルの実行」アクションを使用します。
ホスト名など、いくつかの値を設定テーブルに書き込みます。(ユーザーにこれらを確認させることはできますが、ユーザーがそれらをタップする必要はありません。
あらゆる種類のユーザー操作は、構成可能なフォームを使用して行われます。いくつかのテキストフィールドフォームコンポーネントを使用して、設定をクエリできます。
これはコンソールインストーラーでも透過的に機能し、自動生成された応答ファイルを使用すると、GUIインストーラーの1回の実行に基づいて無人モードでのインストールを自動化できます。

Tomcatの下に配置される接続プロパティファイル(これを支援するミニJARアプリを提供します)を作成します。
これを行うJARファイルが既にある場合は、[インストーラー]-> [カスタムコードとリソース]で追加し、インストーラーに「スクリプトの実行」アクションを追加して、JARファイルのクラスを使用します。
インストーラー変数に保存されたフォームコンポーネントからのユーザー入力には、次のような呼び出しでアクセスできます。
context.getVariable("greetingOption")
「スクリプトの実行」アクション(またはinstall4jの他のスクリプト)のscriptプロパティ。
実際のWebアプリケーション用に2つのWARファイルがあります。これらは2台のマシンに分割できますが、今のところ、両方がTomcatの下にダンプされると仮定します。
Tomcatディレクトリ構造を配布ツリーに追加するだけで、これらのWARファイルを事前にデプロイできます。それ以外の場合は、「ファイルのコピー」アクションを使用して、WARファイルをどこにでも配置できます。
Tomcatを起動して、WARをデプロイします
これは、「サービスの開始」アクションで実行されます。