Я не думаю, что у FileLock есть проблема, о которой вы думаете.В соответствии с документацией он использует функциональность блокировки файлов ОС, которая, я думаю, означает, что большинство ОС будет очищать любые блокировки, удерживаемые процессом, когда он завершает работу (хотя вы можете захотеть сделать несколько тестов для проверки этого).
В противном случаевам нужен способ определить, устарела ли блокировка или нет.
Распространенный метод для обработки этого с помощью таких вещей, как сценарии оболочки, - поместить идентификатор процесса (PID) в файл блокировки.Таким образом, другие приложения, которые видят файл блокировки, могут проверить, действительна ли блокировка, проверяя, запущен ли этот процесс.Если процесс не запущен, замок можно очистить.
Хотя я не знаю, как сделать это через Java ...