2012-12-19 2 views
6

간단한 작업이지만 내 클래스 경로에없는 경로에서 속성 파일을로드하는 방법은 무엇입니까? 예내 클래스 경로에없는 경로에서 속성 파일로드

: foo.jar에의 D : 난이 같은 간단한 자바 실행 파일이 /sample/dir/dir/app1.properties 및 코드 나는 수행

public boolean InitConfig(String propePath) { 
     prop = new Properties(); 
     try { 

      InputStream in = this.getClass().getClassLoader().getResourceAsStream(propePath); 
      prop.load(in); 
      return true; 
     } catch (IOException e) { 
      // TODO Auto-generated catch block 
      e.printStackTrace(); 
      return false; 
     } 
    } 

여기서 propePath는 다음과 같습니다. d : /sample/dir/dir/app1.properties
및 InputStream 입력란은 항상 null입니다. 왜 이런 일이 발생합니까?

+1

'InputStream = 새 FileInputStream (propePath); – jlordo

+0

파일 경로를 사용하여로드해야합니다. getResourceAsStream은 클래스 경로에서 사용 가능한 자원을위한 것입니다. – muruga

답변

16

Classloader.getResourceAsStream으로로드 할 수있는 유일한 리소스는 클래스 (로더) 경로에있는 리소스입니다. 임의의 경로에서 속성을 읽으려면 Properties 클래스의 load 함수 중 하나를 사용하십시오.

final Properties props = new Properties(); 
props.load(new FileInputStream(filePath)); 
관련 문제