jar ファイルと同じディレクトリから log4j2.xml ファイルをロードする

StackOverflow https://stackoverflow.com//questions/23017161

  •  21-12-2019
  •  | 
  •  

質問

application.jar と log4j2.xml ファイルを含むディレクトリ /release/ があります。アプリケーションを実行すると、 java -jar application.jar log4j2.xml 構成ファイルは選択されません。次のように XML ファイルの場所を明示的に指定すると機能します

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

jar が存在するのと同じディレクトリから構成ファイルを常に取得するようにプログラムに指示する方法はありますか?プログラムをできるだけシンプルにして、アプリケーションの実行時にユーザーが面倒なシステム プロパティを設定する必要をなくしたいと考えています。

役に立ちましたか?

解決

システム プロパティがないと、log4j-2.0 はクラスパスで log4j2.xml ファイルを検索します。したがって、私はあなたの質問を次のように読んでいます:アプリを起動するにはどうすればよいですか java -jar application.jar クラスパスに log4j2.xml ファイルがありますか?

これは、application.jar ファイルに Class-Path マニフェスト内のエントリ (http://docs.oracle.com/javase/8/docs/technotes/tools/windows/findingclasses.html#sthref8 ).

もちろん、単に log4j2.xml ファイルを application.jar ファイルに含めることもできます。これを回避したい場合は、log4j2.xml ファイルを含むディレクトリを Class-Path JAR ファイルのマニフェスト内のエントリ。(これは「.」現在のディレクトリである可能性があります。)

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top