2014-09-21 1 views
0

Чтобы предотвратить использование нескольких экземпляров приложения, я использовал технику сокета. Но я хочу открыть тот же экземпляр приложения, если он уже запущен в jvm, так же, как skype.Skype автоматически запускает ту же программу, если мы начнем с меню «Пуск». Есть идеи?Как указать тот же запущенный экземпляр, если он уже запущен в JVM?

ответ

0

Сделайте заявку Singleton в таком случае.

Если он не является нулевым (работает), используйте тот же экземпляр, чтобы создать его экземпляр и использовать. Чтобы начать работу с шаблоном проектирования Singleton, вы можете обратиться к this.

Если вы хотите проверить, если какой-то процесс, если запущен из другого процесса Java вы можете обратиться ниже нить

How to programmatically detect if a process is running with Java under Windows?

Если желаемый процесс запущен не предпринимать никаких действий. Если не начать его

Starting a process in Java?

Запуск процесса должен быть легким -

выполнить start processName через Runtime.getRuntime().exec().

Не уверены, что если вы можете завершить процесс через Wmic утилиту, но вы всегда можете получить PID процесса с WMIC и убить его с taskkill /F /PID processPid

enter image description here

+0

Можно ли открыть или убить запущенные процессы с использованием WMIC? –

+0

Не уверен, что вы можете начать или завершить работу с помощью wmic-утилиты. Поскольку вы используете java, вы можете начать и остановить (два шага) напрямую. Обновлен ответ с тем же. –

Смежные вопросы