Home >Java >javaTutorial >How to get the list of currently open processes (Java)?

How to get the list of currently open processes (Java)?

PHPz
PHPzforward
2023-09-01 13:53:121352browse

How to get the list of currently open processes (Java)?

Users must understand the processes running in the system, whether in the foreground or background. For this, in Windows we have a Task Manager, but internally it uses a program called Task List. The task list, in addition to giving us the currently running processes, also provides us with detailed information such as the process ID, session name, session and memory usage of each process.

In this article, we will learn how to get the list of currently open processes using Java programming language.

algorithm

Step 1 - Create a process that executes tasklist.exe

Step 2 - Create a BufferedReader class that accepts a process object.

Step 3 - Use a while loop to read the process details line by line and print them out.

grammar

To run tasklist.exe located in the system32 folder, we need to call the process obj and then execute it.

The following is the syntax for using this method to execute the tasklist.exe program:

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

NoteThis program does not work with any online editor. To get a list of currently open processes on your local system, you just run it on your local editor (Java IDE).

Method: Use tasklist.exe to list all active processes

In this method, we call a process that executes tasklist.exe in the WIN32 folder. We then use BufferedReader to read all active processes and print them to the console one by one.

Example

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();
      }
   }
}

Output

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
...

In this article, we explored how to find the list of currently open processes in Java.

The above is the detailed content of How to get the list of currently open processes (Java)?. For more information, please follow other related articles on the PHP Chinese website!

Statement:
This article is reproduced at:tutorialspoint.com. If there is any infringement, please contact admin@php.cn delete
Previous article:Variance in JavaNext article:Variance in Java