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