Java Exec вернуть PID в Windows - PullRequest
2 голосов
/ 07 апреля 2011

В Linux я могу запустить:

System.exec('echo test & echo $1');

, который вернет идентификатор процесса команды, которую я выполнил.Как подобный подход можно перевести на Windows?Позвольте мне выполнить команду и вернуть ее PID.

Просто чтобы прояснить ситуацию, я не ищу PID моего приложения JAVA.Я ищу идентификатор процесса внешнего приложения, созданного JAVA с использованием System.exec.

Спасибо

Ответы [ 3 ]

0 голосов
/ 07 апреля 2011

В одном решении используется RuntimeMXBean. Имя bean-компонента содержит pid (например, 12345 @ localhost).

Предупреждение. Возвращаемая строка имени может быть любой произвольной строкой, и реализация виртуальной машины Java может выбрать встраивание полезной информации, относящейся к платформе, в возвращенную строку имени.

На Sun JVM (форма Windows) присутствует PID.

String processName =
  java.lang.management.ManagementFactory.getRuntimeMXBean().getName();
System.out.println(processName.split("@")[0]);
0 голосов
/ 17 июня 2011

Мой вопрос касался не возврата PID процесса Java, а скорее внешних приложений. В конце концов мне пришлось использовать C ++ для итерации по системным процессам, сортирующим по времени их запуска, чтобы вернуть последний процесс.

0 голосов
/ 07 апреля 2011

try jps - Инструмент состояния процесса виртуальной машины Java

JPS

18027 Java2Demo.JAR

18032 jps

18005 JSTAT

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...