2014-07-25 4 views
0

나는 이것을 두 번 본 것으로 보아 몇 가지 제안을 성공하지 못했습니다 (지금까지). 내가 받는다는 프로젝트를 내 속성은 다음 경로에있는 파일 : 나는 키싱글 톤 클래스의 프로퍼티 파일로드

public class TestDataProperties { 

    private static TestDataProperties instance = null; 
    private Properties properties; 


    protected TestDataProperties() throws IOException{ 

     properties = new Properties(); 
     properties.load(getClass().getResourceAsStream("testing.properties")); 

    } 

    public static TestDataProperties getInstance() { 
     if(instance == null) { 
      try { 
       instance = new TestDataProperties(); 
      } catch (IOException ioe) { 
       ioe.printStackTrace(); 
      } 
     } 
     return instance; 
    } 

    public String getValue(String key) { 
     return properties.getProperty(key); 
    } 

} 

하여 속성에 액세스하기 위해 싱글 톤 클래스를로드하려고

[project]/src/main/reources/META_INF/testing.properties 

그러나 나는 무엇입니까 이것이 실행될 때 NullPointerError ... 나는 경로에 대해 생각할 수있는 모든 것을했으나 파일을 찾거나로드하지 않습니다.

아이디어가 있으십니까?

스택 트레이스 :

Exception in thread "main" java.lang.NullPointerException 
    at java.util.Properties$LineReader.readLine(Properties.java:434) 
    at java.util.Properties.load0(Properties.java:353) 
    at java.util.Properties.load(Properties.java:341) 
+1

은'stackstrace'을 추가하고이'exception'을 던지는 그 라인에 우리를 가리 킵니다하시기 바랍니다. – Smit

+0

나는 당신의 속성 파일의 구조에 의문을 가질 것입니다 .. stacktrace 오류가 당신의 코드에서 오지 않습니다 –

답변

1

Properties 개체를 인스턴스화해야합니다. 또한 당신은 /META-INF로 시작하는 경로로 리소스 파일을로드해야합니다 :

properties = new Properties(); 
properties.load(getClass().getResourceAsStream("/META-INF/testing.properties")); 
+0

빙고! 고맙습니다!! –

1

properties가 null ... 당신이 먼저로드 .. 인스턴스화해야합니다.

관련 문제