2012-04-12 4 views
3

내가 같이 실행할 수 있습니다 메인 클래스 항아리를 보유하는 파일 실행 모두 실행외부 속성 항아리를

  1. 자바 -jar test.jar

  2. 자바 -jar test.jar -cp/tmp 디렉토리 (여기서 공동 nfig.properties는

  3. 자바가 -jar test.jar -cp /tmp/config.properties (분명히 작동하지만, 당신에게 내가

) 여기에 달성하기 위해 노력하고있는 무슨 아이디어를 제공하지 않습니다) 위치

코드가 작동하지 않았습니다. config.properties 파일의 경로를 my $ PATH 및 $ CLASSPATH 아래에 두었지만 모두 세 개를 throw합니다.

장기적으로 필자는 구성 파일을 $ {my-config-path}에 넣고 올바르게 읽거나 처리합니다. 그러나 일시적으로 나는 단지 빠르고 더러운 것을 원한다.

  1. 내 항아리에 등록 정보 파일을 포함하고 싶지 않습니다.
  2. 클래스 패스 나 경로에 외부에 보관하고 싶습니다. 항아리를 실행할 때 문제없이 위치를 찾습니다.
+0

새 FileInputStream (새 파일 ("config.properties"))'? – Alexander

+1

파일의 경로가 없으면 java.io.FileNotFoundException이 발생합니다. – Shengjie

+0

나는 이것을 이용하여'$ PATH'와 나의 코멘트를 어떻게 사용할 수 있을지 알 수있을 것 같다. – Alexander

답변

5

-jar을 지정하면 모든 클래스 경로 옵션이 무시됩니다.

대신 사용자의 홈 디렉토리와 같은 기본 구성 위치를 지정하고 명령 줄에서 재정의를 허용하십시오.

명령 줄 구문 분석 옵션 등 예를 들어, 옵션 정보, 길고 짧은 옵션 이름, 사용,

아니면 -D 옵션을 사용하고 적절한 시스템을 검색에 가장 쉬운 주석 클래스 속성의 다양한 있습니다 재산.

또 다른 옵션은 Preferences API입니다.

관련 문제