문제

i Directory / 릴리스 / operation.jar 포함뿐만 아니라 log4j2.xml 파일이 있습니다.java -jar application.jar로 응용 프로그램을 실행하면 log4j2.xml 구성 파일을 선택하지 않습니다.그래서 XML 파일의 위치를 명시 적으로 지정하여 XML 파일의 위치를 명시 적으로 지정하면 작동합니다.

java -Dlog4j.configurationFile=log4j2.xml -jar application.jar

JAR이 상주하는 것과 동일한 디렉토리에서 항상 구성 파일을 항상 선택하도록 프로그램을 지시 할 수있는 방법이 있습니까?프로그램을 가능한 한 간단하게 유지하고 사용자가 응용 프로그램을 실행할 때 Awkward System 속성을 설정할 필요가 없습니다.

도움이 되었습니까?

해결책

System 속성이 없으면 Log4J-2.0은 클래스 경로에서 log4j2.xml 파일을 찾습니다.그래서 저는 다음과 같이 질문을 읽고 있습니다. java -jar application.jar로 앱을 어떻게 시작하고 classpath에 log4j2.xml 파일을 가져올 수 있습니까?

이것은 Application.jar 파일의 Manifest ( http://docs.oracle.com/javase/8/docs/technotes/tools/windows/findingclasses.html#sthref8 ).

물론 application.jar 파일에 log4j2.xml 파일을 포함 할 수 있습니다. 이를 방지하려면 jar 파일의 매니페스트의 Class-Path 항목에 log4j2.xml 파일이 포함 된 디렉토리를 추가 할 수 있습니다.(이것은 "현재"현재 디렉토리 일 수 있습니다.)

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top