3

main メソッドを持つ Install クラスを持つ jar を呼び出す基本的な cmd プログラムがあります。Install クラスは、リソース フォルダーの java.util.logging.config.file を使用します。

private static void setupLogging() {
    if (System.getProperty("java.util.logging.config.file") == null) {
        final InputStream inputStream = Install.class.getResourceAsStream("/logging.properties");
        try {
            LogManager.getLogManager().readConfiguration(inputStream);
        } catch (final IOException e) {
            Logger.getAnonymousLogger().severe("Could not load default logging.properties file");
            Logger.getAnonymousLogger().severe(e.getMessage());
        }
    }
}

このインストール プログラムは別のプロジェクトに属しているため、変更しないでください。しかし、ディスクから (できれば cmd プログラムがある同じフォルダーから) 別の logging.properties ファイルを使用したいと考えています。このインストール プログラムに、リソース フォルダーのデフォルトのファイルではなく、logging.properties ファイルを強制的に使用させるにはどうすればよいですか? これを強制する方法はありますか?

4

1 に答える 1

1

これを試すことができます:

String yourFilePath = "./yourLogProperties.properties";
LogManager.getLogManager().readConfiguration(new FileInputStream(yourFilePath);

プロパティは、アプリが実行されるのと同じフォルダーに保存されているファイルから読み込まれます。

アップデート:

コマンドラインを介してプロパティを渡す方法を少し検索していましたが、ここにかなり良い説明があります。したがって、あなたの場合、次のようなものが必要になります。

java -jar -Djava.util.logging.config.file="./yourLogProperties.properties" YourApp.jar

また、簡単なテストを作成して機能するかどうかをテストできます。

public class Tests {    
    public static void main(String[] args) {
        System.out.println(System.getProperty("java.util.logging.config.file"));
    }    
}

コマンドラインからこれを実行すると、答えが得られるはずです./yourLogProperties.properties

于 2013-07-11T19:43:01.090 に答える