クラスパス外のリソースを読み込む

「リソースファイルを WEB-INF/classes 以外の場所に配置できないもんか」の続き。

クラスローダーから見えない properties ファイルは参照できないんだなー、残念だなー、今日の雨は秋の訪れを予感させるなー、おでん食べたいなー、とか思っていたのだけど、実は相対パスで上の階層まで見れることが判明!

ClassLoader loader;
InputStream inputStream = null;

String path = "../../hoge/test.properties"; Properties properties = new Properties();
try { loader = Thread.currentThread().getContextClassLoader(); inputStream = new BufferedInputStream(loader.getResourceAsStream(path)); properties.load(inputStream); } catch (IOException e) { e.printStackTrace(); } finally { if (inputStream != null) { try { inputStream.close(); } catch (Exception e) { // } } }

こんなことができるとは知らなんだ。頭は柔軟じゃないとダメっすね。

このエントリーのトラックバックURL
http://www.deftrash.com/admin/mt4/mt-tb.cgi/351
φθηνο ηλεκτρονικο τσιγαρο at 2014年1月14日 06:26

Definitely educating story, saved your blog regarding hopes to be able to find more!