java - 如何使用 Java 中的 SIGAR 或 OSHI API 获取特定应用程序的操作系统进程详细信息?
问题描述
SIGAR 或 OSHI 或任何其他类似的 API 是否提供开箱即用且最重要的是通用功能来提取操作系统进程信息?
我的要求是获取特定程序(例如 Chrome)的所有操作系统进程的 PID 和其他一些详细信息。
如下所示,我编写了自己的实现,但我必须为 Unix、Mac、Solaris 等想出一些不同的方法。如下是特定于 Windows 的。只是为了保持通用性,我想知道 SGIAR / OSHI 中是否有任何 OOTB 方法。
public static List<String> getNodeDetailsFromWinOs(){
List<String> nodeList = new ArrayList<String>();
String process;
Process p = Runtime.getRuntime().exec("tasklist.exe /nh");
BufferedReader input = new BufferedReader(new InputStreamReader(p.getInputStream()));
while ((process = input.readLine()) != null)
{
nodeList.add(process.substring(10, process.indexOf(".")));
}
input.close();
return nodeList;
}
解决方案
我之前找不到它,因为 SIGAR 文档无法公开获得。我在这个链接上找到了它们。这包含 doc 和 API Ref。
顺便说一句,
public long[] find(java.lang.String query) throws SigarException
类中的方法ProcessFinder
可用于获取操作系统详细信息。
SIGAR API ref 可以从https://sourceforge.net/projects/sigar/下载
推荐阅读
- javascript - Javascript OneLogin Create Session Login Token returns No 'Access-Control-Allow-Origin'
- php - PHP 上的聚合查询结果与 Mongo-cli 不同
- java - PostgreSQL 迁移后系统累积繁忙。和以前一样的Tomcat7和系统文件
- sql - 如何从外部 api 获取数据并将其存储在本地数据库中?(javascript)
- python-3.x - Python pypyodbc ValueError: microsecond must be in 0..999999
- android - Making ListView Clickable React Native
- javascript - Leaflet JS - external controls
- google-apps-script - 必须在每个新副本上启用 Admin SDK
- javascript - 检索两个频道的消息列表
- node.js - 访问 AzureBotStorage 中的所有用户数据