私はJavaにまったく慣れておらず、クラスパスの設定にいくつか疑問があります。このフォーラムで質問する前に、宿題をしました。グーグルを試し、他のフォーラムを参照しましたが、探しているものが見つかりませんでした。
だから、ここに行きます。
- 正しく実行するために外部jarを必要とするJavaアプリケーションを開発しています。
- これらの外部jarは、カスタムアプリケーション「XYZ」がシステムにインストールされている場合にのみ使用できます。
- ライセンスの問題のため、XYZアプリケーションjarをアプリケーションにパックしたくありません。
- 私のアプリケーションは、アプリケーションXYZが宛先ホストに存在するかどうかを確認し、使用可能な場合は実行します。それ以外の場合は、プログラムを実行して終了するためにXYZが必要であることを示すエラーをログに記録します。
今、主要な部分が来ます...
- XYZアプリケーションは、Linux / Windows /Solarisなどのさまざまなプラットフォームで利用できます。
- XYZは、インストール中にカスタマイズして、カスタムディレクトリにインストールできます。たとえば、WindowsではD:/ XYZ、またはD:/ apps / XYZ、Linux、solarisなどでは/ apps/XYZまたは/apps/ admin/XYZです。
- XYZアプリケーションをインストールすると、jarファイルはXYZがインストールされたディレクトリ/jarsに存在します。例-*nixのD:/ XYZ / jars、/ apps / XYZ/jars。
- アプリケーションXYZが任意のプラットフォームにインストールされると、新しい環境変数XYZ_LIB_PATHが作成され、jarが存在するそれぞれのフォルダーを指します。たとえば、アプリケーションXYZがDにインストールされると、XYZ_LIB_PATH = D:/ XYZ/jarsが作成されます。 /XYZ。同様に、アプリケーションXYZがLinuxマシンにインストールされている場合、XYZ_LIB_PATH = / apps / XYZ/jarsが作成されます。
今私がやりたいのは..
アプリケーションで環境変数(XYZ_LIB_PATH)を参照し、プラットフォームのXYZ_LIB_PATH環境変数が指すディレクトリにあるすべてのjarファイルを取得します。これにより、アプリケーションのインストール時に各マシンでjarファイルを探す必要がなくなります。XYZ_LIB_PATH変数が指すディレクトリを調べて、必要なjarをロードすることで実行を続行できます。
この背後にある理由は、アプリケーションXYZはカスタマイズ可能であるため、各ユーザーが異なるディレクトリにインストールしている可能性があり、私のアプリケーションはXYZがインストールされている場所を見つける必要があります。代わりに、環境変数を使用すると、XYZ_LIB_PATH変数に設定されたパスを調べることで、アプリケーションに必要なjarを簡単に取得できます。ユーザーは環境変数を変更できないため、この変数はすべてのプラットフォームで一定のままであり、jarの有効なパスを取得できます。
Javaでこれを達成する方法はありますか?
ありがとう、Vinay S