如何获取当前打开的进程列表(Java)?

2023年 9月 1日 75.3k 0

如何获取当前打开的进程列表(Java)?

用户必须了解系统中正在运行的进程,无论是前台还是后台。为此,在 Windows 中我们有一个任务管理器,但在内部它使用一个名为任务列表的程序。任务列表除了为我们提供当前正在运行的进程之外,还为我们提供了详细信息,例如每个进程的进程 ID、会话名称、会话和内存使用情况。

在本文中,我们将了解如何使用 Java 编程语言获取当前打开的进程的列表。

算法

第 1 步 - 创建一个执行 tasklist.exe 的进程

第 2 步 - 创建一个接受流程对象的 BufferedReader 类。

步骤 3 - 使用 while 循环逐行读取流程详细信息并将其打印出来。

语法

要运行位于system32文件夹中的tasklist.exe,我们需要调用进程obj然后执行。

以下是使用该方法执行tasklist.exe程序的语法:

Process process_object = Runtime.getRuntime().exec(System.getenv("windir") + "system32" + "tasklist.exe");

登录后复制

注意该程序不适用于任何在线编辑器。要获取本地系统中当前打开的进程的列表,您只需在本地编辑器 (Java IDE) 上运行它。

方法:使用tasklist.exe列出所有活动进程

在这种方法中,我们调用一个执行 WIN32 文件夹中的 tasklist.exe 的进程。之后我们使用BufferedReader读取所有活动进程并将其一一打印到控制台。

示例

import java.io.BufferedReader;
import java.io.InputStreamReader;
public class Main {
public static void main(String[] args) {
try {

// String variable to store process details
String processes;

// Execute tasklis.exe from win32
Process p = Runtime.getRuntime().exec(System.getenv("windir") + "system32" + "tasklist.exe");

// Buffered reader to read from the process object
BufferedReader br = new BufferedReader(newInputStreamReader(p.getInputStream()));

// Prints all processes one by one
while ((processes = br.readLine()) != null) {
System.out.println(processes);
}
}
catch (Exception e) {
e.printStackTrace();
}
}
}

登录后复制

输出

Image Name PID Session Name Session# Mem Usage

========================= ======== ================ =========== ============
System Idle Process 0 Services 0 8 K
System 4 Services 0 9,416 K
Registry 140 Services 0 30,420 K
smss.exe 604 Services 0 1,076 K
csrss.exe 976 Services 0 5,936 K
csrss.exe 1112 Console 1 14,144 K
winlogon.exe 1164 Console 1 11,704 K
wininit.exe 1216 Services 0 6,628 K
services.exe 1260 Services 0 9,804 K
lsass.exe 1276 Services 0 27,360 K
svchost.exe 1396 Services 0 1,388 K
fontdrvhost.exe 1428 Console 1 6,608 K
...

登录后复制

在本文中,我们探讨了如何在 Java 中查找当前打开的进程列表。

以上就是如何获取当前打开的进程列表(Java)?的详细内容,更多请关注每日运维网(www.mryunwei.com)其它相关文章!

相关文章

JavaScript2024新功能:Object.groupBy、正则表达式v标志
PHP trim 函数对多字节字符的使用和限制
新函数 json_validate() 、randomizer 类扩展…20 个PHP 8.3 新特性全面解析
使用HTMX为WordPress增效:如何在不使用复杂框架的情况下增强平台功能
为React 19做准备:WordPress 6.6用户指南
如何删除WordPress中的所有评论

发布评论