在linux中我可以运行:
System.exec('echo test & echo $1');
这将返回我执行的命令的进程ID。如何将类似的方法转换为Windows?允许我执行命令并返回其PID。
要明确我不是在寻找我的JAVA应用程序的PID。我正在寻找JAVA使用System.exec
生成的外部应用程序的进程ID。
由于
答案 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 ++来迭代系统进程按其开始时间排序以返回最新进程。