Я работаю над настольным приложением на базе Java. Одно из требований заключается в том, что если приложение запущено, и пользователь пытается запустить приложение снова, он должен сделать что-то вроде показа какого-то предупреждения и т. Д.Проверьте, работает ли настольное приложение
Я использовал файл для этого, когда пользователь запустил приложение, он добавил текст в файл и сохранил где-то в локальной системе, и когда пользователь пытается запустить приложение снова, я проверяю файл и обрабатываю ситуацию соответствующим образом, но есть некоторые проблемы с этим, например, если приложение анонимно завершено, я не могу удалить этот файл и в этом случай, когда пользователь пытается запустить систему приложений, показывает предупреждение о том, что приложение уже запущено, но на самом деле приложение завершено ненормально.
Я сделал несколько R & D и обнаружил, что могу читать список диспетчера задач Windows, а затем я могу получить и проверить свое приложение, если оно работает. он работал нормально, но во время тестирования у меня возникла проблема i-e, есть программное обеспечение/утилита в окнах с именем «tasklist», перейдите в «start -> run» и введите tasklist, и он отобразит список задач. если эта утилита не установлена в вашей системе или по какой-то причине не была повреждена или повреждена, то это не сработает, и возникнет такая же проблема, что пользователь может запустить приложение более одного раза. Вот код для доступа к элементам Taskmanager
Process p = Runtime.getRuntime().exec(
System.getenv("windir") + "/system32/" + "tasklist.exe");
BufferedReader input = new BufferedReader(new InputStreamReader(
p.getInputStream()));
while ((line = input.readLine()) != null) {
/*
Make the comparison here and show alert.
*/
}
Вопрос: Что такое хороший способ проверить, если приложение уже работает? Я использую Java для приложения и расширенный установщик для создания установщика приложения.
дубликат? http://stackoverflow.com/questions/660205/start-program-if-not-already-running-in-java – FaddishWorm
Eclipse имеет дело с файлом .lock, а обратная обратная связь - это то, что у вас есть на опыте. «Рабочий стол» не означает Windows, вы бы реализовали для Linux, Maxosx и т. Д.? –
Я открою файл FileInputStream в файле ** lock **. Если open не удалось запустить приложение. В противном случае это не так. – johnchen902