クラスパス上のファイルの名前を実際のファイル名に変換するにはどうすればよいですか?
たとえば、ディレクトリ"C:\workspace\project\target\classes"
がクラスパス上にあるとします。そのディレクトリ内には、などのファイルがありますinfo.properties
。
文字列のみを指定して、(実行時に)info.propertiesファイルへの絶対ファイルパスをどのように決定します"info.properties"
か?
結果は次のようになります"C:\workspace\project\target\classes\info.properties"
。
なぜこれが便利なのですか?単体テストを作成するときは、テストリソース(src/main/resources
)にバンドルされているファイルにアクセスしたいが、相対的なクラスパス参照ではなく、実際のファイル名を必要とするサードパーティのライブラリまたはその他のシステムを使用している場合があります。
注:この質問は便利なトリックだと思うので、自分で回答しましたが、これまで誰もこの質問をしたことがないようです。