【Java】カレントディレクトリを取得する方法

java

Javaでカレントディレクトリを取得する方法を紹介します。

この方法は、Junitクラスで個々のテスト用ファイルにアクセスする等に使える便利な方法です。

以前、コチラで少しカレントディレクトリの取得について書きましたが、今回はもう少し深く解説していきます。

[スポンサーリンク]

Javaプロジェクトのカレントディレクトリを取得します。

Javaプロジェクトのカレントディレクトリを取得するプログラムです。
current-directory

    public static void main(String[] args) throws Exception {
    	String dir = System.getProperty("user.dir");
        System.out.println("Projectのトップレベルのパス: " + dir);
    }

実行結果

>実行結果
Projectのトップレベルのパス: C:\pleiades-e4.3-java\pleiades\workspace\app

解説

System.getProperty("user.dir")は、Projectのトップディレクトリパスが取れます。

実行プログラムのカレントディレクトリを取得します。

実行プログラムのカレントディレクトリを取得するプログラムです。
current-directory2

    public static void main(String[] args) throws Exception {
    	String dir = System.getProperty("user.dir");
    	dir = dir + "\\src\\main\\java\\jp\\co\\sample\\app\\sys\\";
        System.out.println("Projectのトップレベルのパス: " + dir);
    }

実行結果

>実行結果
Projectのトップレベルのパス: C:\pleiades-e4.3-java\pleiades\workspace\app\src\main\java\jp\co\sample\app\sys\

解説

Projectのトップディレクトリパス配下(実行プログラムのカレントディレクトリ)を取得するには、自分でパスを追加するしか方法がありません。
System.getProperty("user.dir")を使って取得出来るのは、Projectのトップディレクトリパスのみです。

さいごに

System.getProperty("user.dir")では、Projectのトップディレクトのパスまでしか取得できなく、一見不便なように思えます。
しかし、環境によって変わるのは、Projectのトップディレクトまでのパスだけです。
Projectのトップディレクト配下のパスは、どの環境でも常に同じです。明示的に変更しなければ変わることはありません。

この方法を使うと、Junitのテストが数段楽になります。
それでは!