Awesome
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)