0

如何编写java程序获取pid?

4

3 回答 3

5

Java 应用程序如何发现其进程 ID (PID)

不是很直接,但显然没有“官方”的方式。

于 2009-04-15T07:45:41.093 回答
2

您可以使用 JMX 执行此操作,但请注意。以下不是官方支持的机制,可能会发生变化。但是,我过去使用过它并且效果很好。

RuntimeMXBean rmxb = ManagementFactory.getRuntimeMXBean();
System.err.println("pid: " + rmxb.getName());

将打印 {pid}@hostname

于 2009-04-15T08:13:30.933 回答
1

我不相信这是 Java 提供的东西。首先,它打破了独立于平台的性质。我可以看到两种接近它的方法,都假设您在 UNIX 类型的系统下运行。

  • 提供一个将调用getpid()并返回它的 JNI。
  • 使用 system 或 Runtime 方法之一来运行一个外部程序,该程序将调用getppid()以获取其父级(即 Java)的 PI​​D,或者更糟糕的情况,沿着进程树向上走,直到找到 Java 本身。
于 2009-04-15T07:48:42.210 回答