都内SEのプログラミング勉強と雑記

2008年より都内でSEをしてます。業務システムをリプレイスし続けてきました。ここでは主にjavaやその周辺技術関連を紹介予定。学ぶことリスト:https://docs.google.com/spreadsheets/d/1G4lUqbHxsMf4PGgeRVe1ZL3JTOjlSTrqsJYe1CKz9UY/edit?usp=sharing

System.getProperty("user.dir")で実行時のパスを動的に取得

f:id:object1985:20180619123204j:plain
javaソース内で実際のパスが欲しいときにSystem.getProperty("user.dir")が便利!
環境を意識せず取得できます。
これでテストがはかどります!

src/test/resouces/hogedir/fuga.txt
this.getClass().getClassLoader().getResource("hogedir/fuga.txt")で取得するのもありなのですが
java実行時にtarget配下を見に行って実パスがずれることがあったのでメモメモ。

public void hogeMethod(){
        String property = System.getProperty("user.dir");
        System.out.println("hoge;"+property);
}

これで上記のJava実行ディレクトリパスが取得できます。

後は欲しいリソース名を連結してあげればテストのassertionなどが捗りました。

follow us in feedly