Иногда приложение нельзя запускать дважды, второй экземпляр создаёт конфликты и ошибки. Решение создать lock-файл, первый запуск ставит блокировку, второй сразу выходит.
Создаём lock-файл:
Path lockPath = Path.of("app.lock");Открываем и пытаемся заблокировать:
FileChannel ch = FileChannel.open(lockPath,
StandardOpenOption.CREATE, StandardOpenOption.WRITE);
FileLock lock = ch.tryLock();
Если блокировка не получена — второй запуск запрещён:
if (lock == null) {
System.out.println("Экземпляр уже запущен");
System.exit(1);
}Если всё ок, то приложение работает:
System.out.println("Запуск разрешён ✅");👉 Java Ready | #совет
