Можно настроить программу так, чтобы она сама перезапускалась при изменении конфигурационного файла. Это экономит время при тестах и настройках.
Шаг 1 — создаём watcher:
WatchService watcher = FileSystems.getDefault().newWatchService();
Paths.get(".").register(watcher, StandardWatchEventKinds.ENTRY_MODIFY);
Шаг 2 — следим за файлом:
WatchKey key = watcher.take();
for (WatchEvent<?> e : key.pollEvents())
if (e.context().toString().equals("config.yml"))
restart();
Шаг 3 — перезапуск программы:
void restart() throws IOException {
Runtime.getRuntime().exec("java -jar myapp.jar");
System.exit(0);
}🔥 Полезно для dev-режима, чтобы изменения в конфиге сразу применялись без ручного рестарта.
👉 Java Ready | #практика