2つのオプションがあります。最初のオプションは、ファイルをパッケージ構造内に配置して、jar内にパックされるようにすることです。次のようなコードからそれらを取得します。
getClass().getResourceAsStream("/path/to/your/resource/resource.ext");
Aという名前のクラスの静的メソッドから呼び出す場合は、次のように記述します。
A.class.getResourceAsStream("/path/to/your/resource/resource.ext");
パスの「/path」部分は最上位のパッケージであり、resource.extはファイル名です。
もう1つのオプションは、それらをjarパッケージの外に配置することですが、jarはそれらの場所を知る必要があります。
- プログラムへの引数として指定します(java -jar program.jar system / path / to / file)
- パスを使用してファイルを読み取る場所をハードコードします
私があなたの質問を理解してそれに答えた方法、それはクラスパスとは何の関係もありません:
CLASSPATH変数は、JDKツールを含むアプリケーションにユーザークラスを探す場所を指示する1つの方法です。(JRE、JDKプラットフォーム、および拡張機能の一部であるクラスは、ブートストラップクラスパスや拡張機能ディレクトリなどの他の手段で定義する必要があります。)
編集:しかし、それでも、そこに置いて、次のようなコードから取得することができます:
System.getProperty("java.class.path");
ただし、それを解析するにはいくつかのロジックが必要になります。