【问题标题】:Getting PID of Process on Windows, OSX and Linux在 Windows、OSX 和 Linux 上获取进程的 PID
【发布时间】:2015-08-21 20:59:27
【问题描述】:

我有一个 java 函数,它应该获取进程的 PID,它可以在 Windows 上运行

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

        String pid = null;
        while ((line = in.readLine()) != null) {
            String [] javaProcess = line.split(" ");
            if (javaProcess.length > 1 && javaProcess[1].contains("DEDServer")) {
                pid = javaProcess[0];
            }
        }

        return pid;
}

相同的功能能否在 Mac 和 Linux 操作系统以及基本上所有操作系统上成功获取 PID?或者还有其他需要做的事情来做另一个功能吗?

我除了 Windows 操作系统之外什么都没有,所以如果您能够发布一些新代码,请验证一下吗?

谢谢!

【问题讨论】:

  • 答案和问题一样:jps -l这个命令在其他平台上是否存在,和windows上一样吗?
  • jps 是 JDK 的一部分吗?所有生产机器上都会有JDK吗?
  • JDK 将在所有机器上是的。 @Jayan
  • 在有人能够测试之前我无法找到它...@A4L
  • 您的标题应该是:Getting PID of java Windows、OSX 和 Linux 上的进程。我假设DEDServer 是一个java 主类。

标签: java linux windows macos pid


【解决方案1】:

jps 手动输入的含义是 jps 应该在所有(Oracle 支持的)平台上工作,并且输出格式是相同的。

【讨论】:

    猜你喜欢
    • 2011-07-11
    • 1970-01-01
    • 2012-12-31
    • 1970-01-01
    • 1970-01-01
    • 2018-01-05
    • 1970-01-01
    • 2011-09-07
    • 2020-08-09
    相关资源
    最近更新 更多