Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/linux/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/apache-spark/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用Java获取Linux和Solaris上所有运行进程的列表?_Java_Linux_Process_Solaris_Jna - Fatal编程技术网

如何使用Java获取Linux和Solaris上所有运行进程的列表?

如何使用Java获取Linux和Solaris上所有运行进程的列表?,java,linux,process,solaris,jna,Java,Linux,Process,Solaris,Jna,有人知道如何使用Java获取Linux和Solaris上所有运行进程的列表吗?我不想使用像ps这样的外部程序,也不想使用proc。我想用本机电话。我找到了一种Windows使用JNA的方法。但是这种方式不适用于Linux和Solaris。Java没有为此提供api 您可以做的是解析进程p=Runtime.getRuntime().exec(“ps”)的结果当然,您可以随时查看ps的实现,然后在JNI中执行相同的操作-但是您必须为每个平台分别执行此操作。使用ps。 如果您不想告诉系统运行ps命令,

有人知道如何使用Java获取Linux和Solaris上所有运行进程的列表吗?我不想使用像ps这样的外部程序,也不想使用proc。我想用本机电话。我找到了一种Windows使用JNA的方法。但是这种方式不适用于Linux和Solaris。

Java没有为此提供api


您可以做的是解析进程p=Runtime.getRuntime().exec(“ps”)的结果

当然,您可以随时查看
ps
的实现,然后在
JNI
中执行相同的操作-但是您必须为每个平台分别执行此操作。

使用ps。 如果您不想告诉系统运行ps命令,而是通过JNI,那么获取一份针对Linux和OpenSolaris的ps源代码副本。然后编写Java代码,使用JNI执行ps源代码使用的系统调用。请注意,您需要考虑不同OSES的低级别细节,因为它们是不一样的。p>
如果您不喜欢这个想法,那么最好还是回到ps命令所代表的可移植API。

使用
/proc
文件系统。这是,我找不到一个不应该以同样方式进行操作的原因。

Linux
ps
和Solaris
ps
最终都使用了各自操作系统的/proc实现。您只能直接或间接地使用/proc

看看Sigar:


有了Sigar,您可以做您想要做的事情(还有更多),它有JNI绑定。

对于交叉引用,这里将介绍如何使用
ps
来做:如果不运行ps或使用/proc(ps就是这样做的),就无法获得该列表。您的要求无法满足。谢谢,但正如我在上面所说的,“我不想使用像ps这样的外部程序,也不想使用proc。”我正在用JNI/JNA寻找解决方案。