実行中クラスのパッケージ、ディレクトリを取得する

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に絶対パスを書いたりします。
そのまま書くと、パッケージを移動したときにリファクタリングから漏れるかもしれません。そういう時はこのような書き方をしておけば、修正漏れを防げるかもしれません。