2014-01-31 2 views
0

응용 프로그램을 호출하는 Main 메서드가있는 프로젝트가 있습니다. JAR 파일에 번들로 제공됩니다. JAR 파일에 등록 정보 파일이 없습니다.

나는 다음 줄을 사용하여 응용 프로그램을 호출하는 것을 시도하고있다 :

java -jar sample.jar -sample 123 

이 sample.jar 그것에 설정/config.properties와 함께 번들로.

JAR에서 속성 파일을 읽으려면 다음 코드 줄을 사용해야합니다. 이 속성의 파일이 이미있는 JAR에 존재하지만

InputStream inputStream = 
    this.getClass().getClassLoader().getResourceAsStream("/config/config.properties"); 

이 코드

InputStream inputStream = 
    this.getClass().getClassLoader().getResourceAsStream("config/config.properties"); 

또는

는 JAR 파일에서 특성 파일을 찾을 수 없습니다.

아무도 해결책을 알고 있습니까? 내가 config 폴더에서 config.properties을 이동하면, 작동이 잘되는

+0

'jar tvf sample.jar'의 결과를 보여주세요. –

+0

750 Thu 1 월 30 일 15:17:58 PST 2014 config/config.properties – user886614

+0

문제를 보여주는 짧지 만 완전한 예제를 게시 할 수 있습니까? 그것은 작동해야합니다 ... (당신이 클래스 로더에서 그것을로드하는 것을 감안할 때, 선도 슬래시없이). –

답변

1

...

나는 그런 경우 이유를 모르겠습니다. 하지만 다음 코드 줄을 사용하면 현재 작동 중입니다.

ClassLoader loader = Thread.currentThread(). getContextClassLoader();
InputStream inputStream = loader.getResourceAsStream ("config.properties");

관련 문제