有谁知道如何使用 Java 获取 Linux 和 Solaris 上所有正在运行的进程的列表?我不想使用 ps 之类的外部程序,也不想使用 proc。我想用本机调用来做到这一点。我找到了一种使用 JNA 的 Windows 方法。但这种方式不适用于 Linux 和 Solaris。
问问题
6773 次
6 回答
2
Java 没有为此提供 api。
你可以做的是解析结果Process p = Runtime.getRuntime().exec("ps");
于 2012-11-22T07:44:33.507 回答
1
使用/proc
文件系统。这就是ps 的做法,我找不到你不应该这样做的理由。
于 2012-11-22T09:03:19.663 回答
1
Linuxps
和 Solarisps
最终都使用各自操作系统的 /proc 实现。你不能不直接或间接地使用 /proc。
于 2012-11-22T23:09:10.703 回答
0
当然,您总是可以查看实现,ps
然后在其中执行相同的操作JNI
- 但您必须为每个平台单独执行此操作。
于 2012-11-22T07:45:55.693 回答
0
使用ps。如果您不想告诉系统运行 ps 命令,而是通过 JNI,则获取 Linux 和 OpenSolaris 的 ps 源代码的副本。然后编写使用 JNI 的 Java 代码来执行 ps 源代码使用的系统调用。请注意,您需要考虑不同操作系统的底层细节,因为它们并不相同。
如果您不喜欢这个想法,那么回到 ps 命令所代表的可移植 API 或许是最明智的做法。
于 2012-11-22T08:05:52.320 回答
0
于 2013-03-25T14:31:47.960 回答