Как использовать файл logging.properties с диска в качестве файла java.util.logging.properties

У меня есть базовая программа cmd, которая вызывает jar, у которого есть класс Install с методом main. Класс 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());
        }
    }
}

Эта программа установки относится к другому проекту, и я не должен его менять. Но я хочу использовать отдельный файл logging.properties с моего диска (желательно из той же папки, где у меня есть программа cmd). Как заставить эту программу установки использовать мой файл logging.properties вместо файла по умолчанию из папки ресурсов? Есть ли способ, которым я могу заставить это?

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

Другие вопросы по тегам