当前位置: 首页 > 面试题库 >

如何获取生成的Java进程的PID

欧阳狐若
2023-03-14
问题内容

我正在编写几个Java程序,在完成我想做的所有事情之后,需要在单独的JVM中终止/清理工作。为此,我将需要获取要创建的Java进程的PID。


问题答案:

jps -l在Windows和Unix上均可使用。您可以使用从Java程序中调用此命令Runtime.getRuntime().exec。的样本输出jps -l如下

9412 foo.bar.ClassName
9300 sun.tools.jps.Jps

您可能需要对此进行解析,然后检查标准名称,然后从相应的行中获取pid。

private static void executeJps() throws IOException {
    Process p = Runtime.getRuntime().exec("jps -l");
    String line = null;
    BufferedReader in = new BufferedReader(new InputStreamReader(
                                                p.getInputStream(), "UTF-8"));

    while ((line = in.readLine()) != null) {
        String [] javaProcess = line.split(" ");
        if (javaProcess.length > 1 && javaProcess[1].endsWith("ClassName")) {
            System.out.println("pid => " + javaProcess[0]);
            System.out.println("Fully Qualified Class Name => " + 
                                           javaProcess[1]);
        }
    }
}


 类似资料:
  • 问题内容: 如何查看Java进程中的线程数? 问题答案: 调试Java程序的有用工具,它提供了线程数和其他有关线程的信息:

  • 问题内容: 我从shell脚本启动了一个后台进程,我想在脚本结束后终止该进程。 如何从我的shell脚本中获取此过程的PID?据我所知,变量包含当前脚本的PID,而不是后台进程。 问题答案: 您需要在启动时保存后台进程的PID: 您不能使用作业控制,因为它是一种交互式功能,并且与控制终端绑定在一起。脚本完全不必附加终端,因此作业控制不一定可用。

  • 问题内容: 我试图执行一个脚本,该脚本执行一个EXPECT脚本和一个生成的进程,其中包含退出代码。但是我无法将生成的进程的退出代码获取到主脚本。作为成功,我总是零。 期望脚本是: 产生的脚本: 执行Expect脚本: 问题是我无法获得生成的退出返回代码以期望脚本。我希望生成脚本的退出代码3到主脚本,并且主脚本应该以退出代码3退出。 请帮助我将生成的退出代码获取到主脚本。 问题答案: 在格伦的帮助下

  • 本文向大家介绍Java如何获取当前进程ID以及所有Java进程的进程ID,包括了Java如何获取当前进程ID以及所有Java进程的进程ID的使用技巧和注意事项,需要的朋友参考一下 首先是获取当前Java运行的Java进程ID,这个是网上常见的,也就是Java程序自身将进程ID打印出来: 运行结果: ManagementFactory是一个在运行时管理和监控Java VM的工厂类,它能提供很多管理V

  • 问题内容: 我遇到了一个问题。有时,当我的JUnit测试正在运行时,请命令webDriver.quit();。不会杀死chromedriver进程,因此下一个测试无法开始。在那种情况下,我想添加一些可以在Linux上手动终止进程的方法,但是我不知道如何获取chromedriver的PID,因此可以执行以下操作:Runtime.getRuntime()。exec(KILL + PID); 问题答案:

  • Charset.defaultCharset()和file.encoding是JVM的字符集,而不是OS、控制台和终端的字符集。 现在我创建一个来运行程序,并使用要读取输出,如何为进程找到正确的字符集(是正确的,但似乎不是通用的)?