Поиск процесса из Java
-
12-09-2019 - |
Вопрос
В Java или через какой -то плагин Eclipse можно ли найти процесс по имени без Падение до нативного кода? В частности, я хочу определить, работает ли веб -браузер, и сообщить пользователю, что ему может потребоваться перезагрузить браузер.
Я знаю, что нативный код всегда вариант, но я хочу избежать настройки другой библиотеки JNI, если я могу избежать этого.
Решение
Это на самом деле дублированный вопрос, см. оригинальный.
У вас есть два варианта, один из которых состоит в том, чтобы запустить инструмент командной строки, в котором перечислены процессы работы и анализируют его вывод. Как упомянул Jay On Linux, можно использовать «PS», в Windows вам нужно будет объединить какой -то инструмент, либо порт PS от Gnuwin/Cygwin/и т. Д., Или нативный инструмент, подобный такому Pslist, или посмотрите на образец.
Второй вариант, о котором вы уже знаете, - использовать JNI, однако вам не нужно писать свой код с нуля, вы можете рассмотреть Jniwrapper. Анкет Он обеспечивает прост в использовании Java API для обычных нативных функций ОС. Они также предоставляют бесплатные лицензии на проекты с открытым исходным кодом.
Другие советы
Я не знаю никакого способа получить список процессов запуска непосредственно от Java. Если вы находитесь на Linux, вы можете создать процесс, который выполняет «PS», прочитайте входную серию процесса, чтобы перехватить результаты и проанализировать его. Вам не нужно будет переходить на уровень JNI, чтобы сделать это: вы можете выполнить команду оболочки с процессом.