Требуется, чтобы только один экземпляр программы JAVA мог быть выполнен в определенное время. Я наблюдал большое количество решений, предлагаемых в переполнении стека в разных предыдущих постах.
Решения основаны на:
- Открытие гнезда: открытие соединения сокета.
- На основе блокировки файлов: создать временный файл и удерживать блокировку. И добавить кран отключения, чтобы разблокировать этот файл, когда JVM отключится.
Я не хочу использовать блокировку портов, поскольку это может вызвать конфликт в использовании портов.
Итак, я думал использовать блокировку файлов. После некоторого поиска я обнаружил, что сторонники механизма блокировки портов упомянули, что блокировка файлов может быть ненадежной, если сбой приложений и другие ошибки ввода-вывода.
Мне нужно найти решение, которое будет работать последовательно в кросс-платформе и в нескольких JDK. Моя целевая платформа - Windows и Linux, а JDK - Sun и IBM JDK.
Может ли кто-нибудь пролить свет на это?