java exec在Windows中返回PID

时间:2011-04-06 22:41:24

标签: java windows

在linux中我可以运行:

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

这将返回我执行的命令的进程ID。如何将类似的方法转换为Windows?允许我执行命令并返回其PID。

要明确我不是在寻找我的JAVA应用程序的PID。我正在寻找JAVA使用System.exec生成的外部应用程序的进程ID。

由于

3 个答案:

答案 0 :(得分:0)

尝试jps - Java虚拟机进程状态工具

JPS

18027 Java2Demo.JAR

18032 jps

18005 jstat

答案 1 :(得分:0)

一种解决方案使用RuntimeMXBean。 bean的名称包含pid(例如12345 @ localhost)。

警告:返回的名称字符串可以是任意字符串,Java虚拟机实现可以选择在返回的名称字符串中嵌入特定于平台的有用信息。

在Sun JVM(Windows平台)上,存在PID。

String processName =
  java.lang.management.ManagementFactory.getRuntimeMXBean().getName();
System.out.println(processName.split("@")[0]);

答案 2 :(得分:0)

我的问题不是关于返回java进程的PID而是返回外部应用程序。最后,我不得不使用C ++来迭代系统进程按其开始时间排序以返回最新进程。