Запретить запуск нескольких экземпляров Java-приложения путем блокировки файла не работаетJAVA

Программисты JAVA общаются здесь
Ответить Пред. темаСлед. тема
Anonymous
 Запретить запуск нескольких экземпляров Java-приложения путем блокировки файла не работает

Сообщение Anonymous »

По какой-то причине это решение, предотвращающее запуск нескольких экземпляров приложения, больше не работает. Что случилось?
Я ожидаю, что при втором запуске этого приложения будет напечатано: «еще один экземпляр запущен» и остановится с ошибкой, но этого не происходит. Второй экземпляр работает так же, как и первый.
import java.io.File;
import java.io.IOException;
import java.nio.channels.FileChannel;
import java.nio.channels.FileLock;
import java.nio.file.StandardOpenOption;

public class JustOneTest {

public static void main(String[] args) {
runCheck();
while (true) {
try {
System.out.print(".");
Thread.sleep(5 * 60);
} catch (Exception e) {
e.printStackTrace();
}
}
}

private static void runCheck() {
System.out.println("start check: is app running");
final File file = new File(System.getProperty("user.home"), "khf.lock");

try {
FileLock lock;

try (FileChannel fc = FileChannel.open(file.toPath(),
StandardOpenOption.CREATE,
StandardOpenOption.WRITE)) {
lock = fc.tryLock();
}

if (lock == null) {
System.out.println("another instance is running");
throw new Error("another instance is running");
}

System.out.println(lock);
// output: sun.nio.ch.FileLockImpl[0:9223372036854775807 exclusive invalid]

} catch (IOException e) {
throw new Error(e);
}

System.out.println("start check completed");
}

}


Подробнее здесь: https://stackoverflow.com/questions/790 ... -a-file-is
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «JAVA»