簡體   English   中英

Windows中的Java exec返回PID

[英]java exec return PID in Windows

在linux中,我可以運行:

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

這將返回我已執行的命令的進程ID。 如何將類似的方式翻譯成Windows? 請允許我執行命令並返回其PID。

為了清楚起見,我不是在尋找我的JAVA應用程序的PID。 我正在尋找使用System.exec由JAVA生成的外部應用程序的進程ID。

謝謝

試試jps-Java虛擬機進程狀態工具

jps

18027 Java2Demo.JAR

18032張

18005 JSTAT

一種解決方案是使用RuntimeMXBean。 Bean的名稱包含pid(例如12345 @ localhost)。

警告:返回的名稱字符串可以是任意字符串,並且Java虛擬機實現可以選擇將特定於平台的有用信息嵌入到返回的名稱字符串中。

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

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

我的問題不是關於返回Java進程的PID,而是關於外部應用程序。 最后,我不得不使用C ++遍歷系統進程,並按照它們的開始時間進行排序,以返回最新的進程。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM