如何以编程方式获取所有正在运行的Java应用程序的PID?

如何以编程方式获取所有正在运行的Java应用程序的PID?,java,Java,我需要找到使用我的程序运行的所有java应用程序的PID。从应用程序运行进程。您对此有何看法: Process process = Runtime.getRuntime().exec(new String[] {"ps", "-ef", "|", "grep", "java"}); final char[] buffer = new char[0x10000]; StringBuilder out = new StringBuilder(); Reader in = new InputStre

我需要找到使用我的程序运行的所有java应用程序的PID。

从应用程序运行进程。

您对此有何看法:

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);

嗨,我在哪里可以运行jps?从命令提示符?它在那里不认识它。好的,谢谢你的工作。现在,您能告诉我如何使用jps以编程方式终止特定进程吗?一种方法是:读取
jps-ml
的输出,从输出中搜索指定的名称并解析相应的pid,然后运行
kill-9PID
。嘿,看起来您真正的问题应该是“如何使用jps终止进程”。你应该修改你的问题使之清楚。另外请注意,Netbeans和VisualVM在jps结果中都有名称Main,即使使用
jps-ml
也可能会出现问题,因为命令行参数不可靠。