2014-09-26 2 views
0

내가이 프로그램은 모든 하나 개의 디렉토리 및 4 개 속성에서 다른 jar 파일의 번호를 사용log4j는 jar 파일의 속성을 좋아합니다?

java -cp .:./lib -Duser.timezone=GMT -Dlog4j.debug -jar programName.jar 

실행 jar 파일에서 리눅스에 직접을 실행하고있어 자바 응용 프로그램이 모든 그중를 파일 다른 디렉토리 (현재 디렉토리)에. 두 디렉토리 모두 CLASSPATH에 포함됩니다.

충분히 간단합니다.

Log4j가 log4j.properties을 찾지 못한 것을 제외하면됩니다. 내가 관리해야하는 유일한 방법은 그것을 찾을 수 있도록 log4j.properties이 아닌 내가 원하는 것입니다 programName.jar

에 포함하는 것입니다, 나는 모든 다른 속성의 파일과 같은 디렉토리에있는이 log4j.properties를 사용하여 갖고 싶어, 그들은에 CLASSPATH이며 예상대로 발견됩니다. 사용

다른 JAR 파일은 :

  • jdom-2.0.5.jar
  • log4j-1.2.17.jar
  • ojdbc7.jar
  • quartz-2.2.1.jar
  • slf4j-api-1.7.7.jar
  • slf4j-log4j12-1.7.7.jar

slf4j-log4j12-1.7.7.jar이 log4j가 속성 파일을 찾을 때 CLASSPATH을 검사하지 못하도록하는 구성을하고 있는지 궁금합니다. 내 코드에는 특성 파일의 위치를 ​​지정하기위한 지침이 포함되어 있지 않습니다.

아직 -jar 옵션이없는 프로그램을 실행 해 보았습니다. 다음에 시도해 보겠습니다.

지금까지 벨소리가 울립니까?

답변

1

jvm (log4j.configuration)에 인수를 추가하십시오. 예 :

java -cp .:./lib -Dlog4j.configuration=file:log4j.properties -Duser.timezone=GMT ... 

자세한 내용은 answer을 참조하십시오.

+0

귀하의 제안에 감사드립니다. 그러나 귀하의 추론을 이해하지 못합니다. 내 log4j.properties는 그것이 포함하고있는 의미에서 만 사용자 정의입니다. 이름과 위치는 표준입니다. 표준 (비 xml) 이름을 사용할 때 이름을 지정해야하는 이유를 설명 할 수 있습니까? – user835745

+0

내 대답이 업데이트되었습니다. 이게 당신을 도울 수 있기를 바랍니다. :) –

+0

안녕하세요 폴, 고마워요, 당신의 제안이 도움이 되었어요. 안타깝게도 Log4j가 CLASSPATH에 있더라도 log4j.properties를 찾지 못하는 이유를 알지 못해 좌절감을 느낍니다. – user835745