2012-02-07 72 views
-2

我需要使用我的程序找到所有正在运行的java应用程序的PID。如何以编程方式获取所有正在运行的Java应用程序的PID?

+2

* “我需要找到。” *为什么呢? – 2012-02-07 06:06:54

+0

嘿,看起来你真正的问题应该是“如何使用jps杀死一个进程”。你应该修改你的问题来说清楚。另外请注意,Netbeans和VisualVM在jps结果中都有名称Main,即使使用'jps -ml',也可能会出现问题,因为命令行参数不可靠。 – coolcfan 2012-02-07 06:45:35

回答

1

你觉得这是什么:

Process process = Runtime.getRuntime().exec(new String[] {"ps", "-ef", "|", "grep", "java"}); 

final char[] buffer = new char[0x10000]; 
StringBuilder out = new StringBuilder(); 
Reader in = new InputStreamReader(process.getInputStream(), "UTF-8"); 
int read; 
do { 
    read = in.read(buffer, 0, buffer.length); 
    if (read>0) { 
     out.append(buffer, 0, read); 
    } 
} while (read>=0); 
process.destroy(); 

System.out.println(out); 
2

从您的应用程序运行jps过程。

+0

嗨,我可以在哪里运行jps?从命令提示符?它在那里不承认它。 – 2012-02-07 06:11:27

+0

乔,检查你PATH env – George 2012-02-07 06:23:38

+0

好的,谢谢你有工作。现在你可以告诉我如何使用jps程序化地杀死一个特定的进程吗? – 2012-02-07 06:32:22

相关问题