実行中クラスのパッケージ、ディレクトリを取得する
Javaで現在実行中のクラスのパッケージや、ディレクトリを取得する。
例えば「Sample」プロジェクトのパッケージ「com.sample.foo.bar.baz」にある以下のようなクラスの場合。
package com.sample.foo.bar.baz; import java.io.File; public class GetCurrentPath { /** カレントパッケージ */ private static final String CURRENT_PACKAGE = GetCurrentPath.class.getPackage().getName(); /** カレントディレクトリ */ private static final String CURRENT_PATH = new File("").getAbsolutePath(); public static void main(String[] args) { System.out.println(CURRENT_PACKAGE); System.out.println(CURRENT_PATH); } }
これを実行すると、次のように表示される。
com.sample.foo.bar.baz C:\eclipse\work\Sample
現在のパッケージとカレントディレクトリの絶対パスが取得できます。
ローカルからファイルを読み込んだりする時、よくそのままStringに絶対パスを書いたりします。
そのまま書くと、パッケージを移動したときにリファクタリングから漏れるかもしれません。そういう時はこのような書き方をしておけば、修正漏れを防げるかもしれません。