2011-07-08 8 views
3

最近、私はいくつかのデータベースを管理するSwing、AWT、JDBCを使用してアプリケーションを作成しました。 PostgreSQLをバックエンドとして使用してJDBCドライバを使用してデータベースに接続しました。私がしたいのは、アプリケーションを任意のPCにインストールして使用できるようにセットアップ/インストーラプログラムを作成することです。私の問題は、データベースをどのように統合するのか分かりませんか?データベースを持つJavaプログラムのインストーラを作成する

ご協力いただければ幸いです。

+0

ビルドツールとして何を使用していますか?蟻? Maven?その他? –

答えて

3

データベースコンポーネントを持っているほとんどの商用アプリケーションからのレッスンを取ります。通常は、データベースを事前にインストールまたは設定し、サポートされているベンダーにdbスクリプトを提供する必要があります。これには多くの理由があります。これらのほとんどは、組織が独自のデータベースを管理しているという事実に関連しています。多くの場合、セキュリティ、保守などに関する会社の制限があるためです。また、複数の異なるプログラム間で単一のデータベースプロセスを共有することもできます(アプリケーションを2つインストールする場合は、データベースを2つインストールする必要がありますか?

ほとんどの人(特にネットワーク管理者)は、自分のマシンに不正なDMBSをインストールすることを嫌うアプリケーションは望んでいません。

インストールプロセス中にデータベースのインストールを試行するのに多大な時間を費やすことはありません。ベンダーがあなたのためにインストールプロセスをすでに作成しているときに、なぜホイールを再発明するのですか?代わりに、データベースを事前にインストールして、最初の起動時にアプリケーションが接続できるように、必要なスクリプトを実行する代わりにインストーラにフォーカスしてください。それが意味することは、インストーラでデータベースと通信して初期化するために必要なドライバ、接続情報、および資格情報を持っていることです。 DBの初期化後、インストール中に初期化したデータベースを指すように、アプリケーションのインストールを構成する追加のルーチンを持つことができます。このアプローチをとることは簡単ではありませんが、リモート・データベースへの接続やデータベースの初期化をすべてスキップして既存のデータベースに接続するなどの面白いことをアプリケーションで実行できます。

4

DBインストールも管理するインストーラを書くことは、それ自体のプロジェクトです。大きな疑問は、PostgreSQLをゼロからインストールする必要があるか、それとも最初にインストールするようにユーザーに指示するのでしょうか?

私は似たようなことをやろうとしましたが、最終的に私のプログラムとともにインストールバンドルにPostgresとJREを含むNSISをインストールしました。インストーラーは、すべてをユーザーのインストール場所にコピーし、必要なすべての構成ファイルを作成します。

私が気づいた最大の問題は、NSISで多くのプログラミングをしていたと思われるユーザーに提示するいくつかの設定オプションがあることでした。そこで、プロジェクトをビルドするために既に作成したANTビルドスクリプトを修正しました。 NSISが実行するのは、JREを一時的な場所にコピーして、JavaインストーラGUIを起動することです。代わりに、すべての設定情報を収集し、バックグラウンドでANTを起動します。

設定する必要がないか、設定する必要があるオプションが多くない場合は、おそらくNSISのすべてを直接行うことができます。しかし、あなたもセキュリティを意識する必要があることに留意してください。 Postgresを実行するための新しいユーザーをどうやって作りますか?あなたがインストールするためのディレクトリアクセス許可はどうですか?誰がDBを起動したり停止したりすることができますか?

0

たぶん、あなたはHSQL、またはH2、またはダービーのような、純粋なJavaデータベースを試して....

関連する問題