2012-03-19 2 views
1

test.property이라는 등록 정보 파일에 user.home에 액세스하려면 어떻게해야합니까?user.home 디렉토리에서 속성 파일에 액세스하는 방법은 무엇입니까?

이 작동하지 않습니다

public class Properties { 

    private static java.util.Properties p = new java.util.Properties(); 

    static { 
     try { 
      String home = System.getProperty("user.home"); 
      home += "\\test.properties"; 
      System.out.println("User home: " + home); 
      InputStream is = Properties.class.getResourceAsStream(home); 
      p.load(is); 

     } catch (FileNotFoundException e) { 
      System.out.println("property file could not be found!"); 
     } catch (IOException e) { 
      e.printStackTrace(); 
     } 
    } 
} 
+1

제쳐두고 메인 클래스의 패키지 이름을 기반으로 응용 프로그램 속성을'user.home'의 하위 디렉토리에 두는 것이 낫습니다. 이렇게하면 * (잘못 이름 붙인)'test.properties'가 * my * (저조한 이름의) test.properties (또는 그 반대)를 덮어 쓰는 것을 방지 할 수 있습니다. –

+0

@dooonot 나중에 참조 할 수 있도록 "작동하지 않음"은 문제를 설명하는 적절한 방법이 아닙니다. 코드를 게시하는 것이 첫 번째 단계입니다. 다음은 실제로 발생하는 내용을 게시하는 것입니다. 즉, 어떤 출력을 얻고 있는지, 예외 사항 등을 사람들이 컴파일하고 코드를 실행할뿐만 아니라 동일한 결과를 얻을 것이라고 가정하지 마십시오. 너는. – Thor84no

답변

1
File propsFile = new File(home, "test.properties"); 
InputStream is = new FileInputStream(propsFile); 

당신은 아마 user.home 응용 프로그램의 런타임 클래스 경로에없는 것을 발견 할 것이다. 이 경우 File을 대신 사용하십시오.

관련 문제