0

基本的にMySQLデータベースへのインターフェースであるJavaアプリケーションを作成しました。データの整理と追跡に役立ちます。職場で問題なく使用しています。Eclipseからjarファイルとしてエクスポートし、このjarファイルのコピーを全員に渡しました。

今、私たちはこのソフトウェアを他の職場で利用できるようにしたいと思っています。問題は、データベースのURL、ユーザー名、およびパスワードがアプリケーションにハードコーディングされていることです。誰かがそれをダウンロードしたときに、MySQLをダウンロードして、選択した場所にデータベースをセットアップするウィザードを実行できるように、セットアッププロセスを作成したいと思います。その後、全員が同じデータベースにアクセスするため、セットアップを行わなくても、jarファイルを職場の全員に配布できます。

このプロセスでは、データベースのURL、ユーザー名、およびパスワードを何らかの方法で保存して、職場の人々がどのコンピューターからでもjarを実行できるようにする必要があります。これは私にそれらがjarの中に保存されるべきであると私に思わせます...私が必要とするプロパティファイルですか?プロパティファイルをjar内に配置して、セットアッププロセス中に編集できるようにすることはできますか?

どんなガイダンスでも大歓迎です、私はこれに非常に新しいです!

================================================== ================================

編集:私が今やろうとしていることは、ユーザーにMySQLをインストールさせ、自分でデータベースをセットアップさせることだと思います。以下の回答が示唆しているように、この自動化を使用すると、さまざまなプラットフォーム、データベースのセットアップの設定、セキュリティ上の懸念などに対処する必要があるため、この自動化は価値があるよりも厄介になる可能性があります。これを実行すると、ダウンロードするだけです。 jarファイル。

jarファイルにプロパティファイルを追加して、データベースのURL、ユーザー名、およびパスワードを保存しました。このファイルは最初は空であるため、ユーザーが初めてjarを実行すると、プログラムはプロパティファイルへのアクセスを試み、ファイルが空であることを確認して、ユーザーにこの情報の入力を求めます。次に、jarからプロパティファイルを抽出し、それらの情報を編集して、プロパティファイルをjarに貼り付けます。次に、その人は更新されたjarを同僚に配布でき、その情報を提供しなくても全員が開くことができるはずです。この部分はほとんど機能しています。また、同じメソッドを呼び出すことで、プログラムを「再構成」する機能を追加します(ユーザーがデータベースを移動した場合に備えて)(プログラムの新しいバージョンを再度配布する必要があります)。

次に、プロパティファイルを暗号化するか、コードを難読化してセキュリティで保護してみたいと思います(ただし、テキストファイルではなく、クラスファイルでのみ機能すると思います...?)。私の懸念は、職場の誰もがそれを解凍してプロパティファイルを開き、URL、ユーザー名、およびパスワードを使用して自分でデータベースにアクセスし、損傷を引き起こす可能性があることです。理想的には、プログラム自体を除いて、誰もそれを解凍することはできません。

誰かが私の方法について他の懸念がある場合は、私に知らせてください!

4

4 に答える 4

0

アプリケーションをどのようにデプロイしますか?

Webstartを使用している場合は、jnlp-Fileでプロパティを定義し、System.getProperties(...);を使用してそれらにアクセスできます。

于 2013-02-24T01:50:27.120 に答える
0

まず、さまざまなユーザーがアクセスできるように、職場の中央の場所にデータベースをセットアップするのは簡単なことではありません。また、最初のユーザーがアプリケーションをセットアップしてから、アプリケーションを他のユーザーに再配布するという問題もあります。

技術的な質問への回答 - 最も簡単な方法は、既知の場所に unjar し、その場所でプロパティ ファイルを編集してから、おそらくその職場に固有のサフィックスを付けて、新しいファイルに再 jar することです。

于 2013-02-24T01:38:26.430 に答える
0

によって取得されたユーザー ホーム ディレクトリのサブディレクトリにプロパティ ファイルを保存できますSystem.getProperty("user.home)。また、Apache Commons Configuration ライブラリもご覧ください。

于 2013-02-24T01:41:47.073 に答える
0

HSQLDBを見てください。セットアップのしやすさにこだわった軽量DBです。存在しない場合はデータベースに設定し、存在する場合はそれを設定できます。ただし、MySQL のようなものが必要で、多数のユーザーがさまざまなワークステーションから MySQL に接続する必要がある場合は、ダウンロードしてインストール プロセスで構成することはお勧めしません。ネットワークとセキュリティに関する多くの懸念事項があります。補足として、プロパティ ファイルを使用することをお勧めします。

これは、考慮すべきセキュリティ上の問題のいくつかを説明するリンクです。また、これについてもう少し考えてみると、ユーザーは db サーバーをセットアップ/構成するために必要な権限を持っていない可能性があります。長い目で見れば、彼らが db サーバーをセットアップし、アプリケーションのクラスパスにプロパティ ファイルを配置できるようにする方が、おそらく安全で簡単です。

余談ですが、これを Web アプリケーションにすることは考えましたか? これにより、物事がさらに簡単になり、人々は何もダウンロードする必要がなくなり、ほとんどのユーザーにとってセットアップは不要になります.

于 2013-02-24T01:46:07.533 に答える