2012-03-08 8 views
0

システムごとにデータベースを変更したいアプリケーションを開発したいと思います。 EXのためにJAVAを使用してOSにインストールされているソフトウェアを一覧表示できます

:私はMS-OfficeがインストールまたはOracleがインストールされている場合orathinを使用している場合は、ファイルを.mdfファイルには、Javaコードを接続することでしょう。 これは、データベースを指定せず、依存関係を減らすのに役立ちます。

答えて

4

単純な答えはいいえです。これを行うための標準的な方法はありません。これを行うサードパーティ製のライブラリは認識していません。


より詳細な答えは、理論的ではこれを行うには、独自のコードを書くことができますが、コードは非ポータブルと信頼できないだろうということです。

  • Windowsでは、レジストリを相互参照する必要があります。 Linuxの
  • は、あなたがソフトウェアがインストールされる可能性があります明らか場所をチェックする必要があり、管理者/ユーザーは違っそれを行うことを決めていなかったことを願っていたいです。

そして、あなたが正確にインストールされている(あなたとの関連性の)どのようなソフトウェアを決定することができたとしても、あなたはより多くの問題を持っています。 2つのデータベース製品がある場合はインストール何

  • ?何もない場合は?
  • ユーザーが非ローカルRDBMSを使用する場合はどうなりますか?
  • 他のデータベース関連の設定はどうなりますか?データベースアカウント/パスワード?接続URL?論理データベースとテーブル名?

要するに、大部分のユーザーにとって十分に機能する自動インストール戦略を設計できるかどうかは疑問です。

1

オペレーティングシステムを特定し、アプリケーションがインストールされるディレクトリ(%WINDRIVE%/ Program Files、/ Applications、/ usr/shareなど)をクロールすることで、必要なアプリケーションを調べることができます。

これを検索するときは、バージョンが異なる場合はregexを使用すると便利です。すべてのアプリケーションバージョンを手作業で追加する必要はありません)。

コマンドを発行してアプリケーションがインストールされているかどうかを判断できますが、どの程度信頼性が高いかはわかりません(アプリケーションバイナリにPATH変数で到達できません)。

OSのプログラミングとOSのAPIについてよく知っていて、JNIを介していくつかのシステムコールを行う方が良いでしょう。

これが役に立ちます。

EDIT:関連するファイルの拡張子の既定のプログラムを見つけて、必要なプログラム(つまり、ユーザーには.mdfファイルに関連付けられているVLCプレーヤーがない)を確認することもできます。ファイルタイプに関連付けられているすべてのプログラムのリストを取得できる場合は、そのリストをクロールするだけで済みます。必要なプログラムにファイルタイプが関連付けられていない可能性があるため、これは以前のソリューションより信頼性が低い可能性があることに注意してください。

0

PATHを調べて、インストールされているプログラムを見つけることができます。次に、既知のプログラムを検索することができます。

複数のプログラムが見つかった場合や見つからない場合は、プロンプトを表示することができます。ユーザーに3番目の解決策があり、プログラムに接続できるか、または検索で1つのプログラムxyのみが検索されたが、yx64またはyx2012のyxが返されなかった可能性があります彼のシステム。

関連する問題