有谁知道如何使用Java获取Linux和Solaris上所有正在运行的进程的列表?我不想使用像ps这样的外部程序,我不想使用proc。我想用本机电话来做。我找到了一种使用JNA的Windows方法。但这种方式对Linux和Solaris不起作用。
答案 0 :(得分:2)
Java没有为此提供api。
您可以做的是解析Process p = Runtime.getRuntime().exec("ps");
答案 1 :(得分:1)
使用/proc
文件系统。这是how ps does it,我找不到你不应该这样做的原因。
答案 2 :(得分:1)
Linux ps
和Solaris ps
最终都使用各自操作系统的/ proc实现。无论是直接还是间接使用/ proc,你都不得不这样做。
答案 3 :(得分:0)
当然,您可以随时查看ps
的实施情况,然后在JNI
中执行相同操作 - 但您必须为每个平台单独执行此操作。
答案 4 :(得分:0)
使用ps。 如果您不想告诉系统运行ps命令,而是通过JNI,那么获取Linux和OpenSolaris的ps源代码的副本。然后编写使用JNI执行ps源代码使用的系统调用的Java代码。请注意,您需要考虑不同操作系统的低级别详细信息,因为它们不相同。
如果你不喜欢这个想法,那么回到ps命令所代表的可移植API也许是最明智的。
答案 5 :(得分:0)