やりたいこと
Propertyファイルから値を取得したい(相対パスで取得したい)
エラー内容
java.nio.file.NoSuchFileException: resources\common.properties
となる。
実装
java.util.Properties
を利用して値を取得
- Utilクラス
java
1public class PropertyUtil { 2 3 private static final String INIT_FILE_PATH = "resources/common.properties"; 4 private static final Properties properties; 5 6 private PropertyUtil() throws Exception { 7 } 8 9 static { 10 properties = new Properties(); 11 try { 12 properties.load(Files.newBufferedReader(Paths.get(INIT_FILE_PATH), StandardCharsets.UTF_8)); 13 } catch (IOException e) { 14 // ファイル読み込みに失敗 15 System.out.println(e) 16 System.out.println(String.format("ファイルの読み込みに失敗しました。ファイル名:%s", INIT_FILE_PATH)); 17 } 18 } 19 20 public static String getProperty(final String key) { 21 return getProperty(key, ""); 22 } 23 24 public static String getProperty(final String key, final String defaultValue) { 25 return properties.getProperty(key, defaultValue); 26 }
- propertyファイル
common.properties
properties
1test=value1 2
- 呼びだし
main.java
java
1 public static void main(String[] args) { 2 System.out.println(PropertyUtil.getProperty("test")); // ⇒ テスト値 3 }
- フォルダ構成
src/main/java/demo/main.java
src/main/java/demo/util/PropertyUtil.java
src/main/resources/common.properties
- classpath
c:\workspace\sampleProject/target/classses/
やってみたこと
classespath
の直下にcommon.properties
があったので、
private static final String INIT_FILE_PATH = "common.properties";
にしたが、同じエラーとなった。
private static final String INIT_FILE_PATH = "src/main/resources/common.properties";
にすると、取得できた。(絶対パスでの取得)
回答3件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/07/17 01:30 編集