Skip to content

profesorfalken/jProcesses

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

jProcesses

Get crossplatform processes details with Java

Installation

To install jProcesses you can add the dependecy to your software project management tool: http://mvnrepository.com/artifact/org.jprocesses/jProcesses/1.6.4

For example, for Maven you have just to add to your pom.xml:

  <dependency>
         <groupId>org.jprocesses</groupId>
         <artifactId>jProcesses</artifactId>
     	<version>1.6.4</version>
  </dependency>

Instead, you can direct download the JAR file and add it to your classpath. http://central.maven.org/maven2/org/jprocesses/jProcesses/1.6.4/jProcesses-1.6.4.jar

The only dependency you will need to add to the classpath is WMI4Java. You can download de JAR file here.

Basic Usage

Get processes details

    List<ProcessInfo> processesList = JProcesses.getProcessList();
    
    for (final ProcessInfo processInfo : processesList) {
        System.out.println("Process PID: " + processInfo.getPid());
        System.out.println("Process Name: " + processInfo.getName());
        System.out.println("Process Time: " + processInfo.getTime());
        System.out.println("User: " + processInfo.getUser());
        System.out.println("Virtual Memory: " + processInfo.getVirtualMemory());
        System.out.println("Physical Memory: " + processInfo.getPhysicalMemory());
        System.out.println("CPU usage: " + processInfo.getCpuUsage());
        System.out.println("Start Time: " + processInfo.getStartTime());
        System.out.println("Priority: " + processInfo.getPriority());
        System.out.println("Full command: " + processInfo.getCommand());
        System.out.println("------------------");
    }

Kill process by PID

    boolean success = JProcesses.killProcess(3844).isSuccess();

Change process Priority

Unix/Mac:

    boolean ok = JProcesses.changePriority(3844, 5).isSuccess();

Windows:

    boolean ok = JProcesses.changePriority(3844, WindowsPriority.HIGH).isSuccess();

More info

Webpage: http://www.jprocesses.org

Special thanks

@jkuharev: for his help to make jProcess work on Mac

@Gobliins: for fixing executeCommand hang with lots of process using ProcessBuilder

@janhoy: for his contribution that fix long date parsing with locales different from english (Norwegian in his case)