Manage OS processes and get cpu and memory stats cross-platform in Java.
Branch: master
Clone or download
Pull request Compare This branch is 5 commits ahead of jezhumble:master.
Latest commit 53ef94f Feb 16, 2016
Type Name Latest commit message Commit time
Failed to load latest commit information.
lib Checking in older versions of dll's as the 32bit dll was wrongly chec… Feb 15, 2016
src Changing the sleep time to identify from external sleep call. Feb 9, 2016
LICENSE Updated license and deal correctly with 64-bit Windows Dec 19, 2009 Bumped minor version May 14, 2014
build.xml Target 1.7 compatibility Feb 16, 2016
javasysmon.iml Added support for killing child processes on JDK8 Feb 4, 2016
javasysmon.ipr Added support for killing child processes on JDK8 Feb 4, 2016


JavaSysMon is designed to provide an OS-independent way to manage OS processes and get live system performance information such as CPU and memory usage, distributed as a single jar file. It is written in C and Java. However the native binaries are hidden away inside the jar, so you never need to worry about them.

Currently it supports Mac OS X, Linux, Windows, and Solaris. Ultimately we aim to support everything from AIX to Android.

If you’re interested in adding support for a new platform, check out the project wiki.

Download latest

The current version of JavaSysMon is 0.3.5, released May 14th 2014. You can get it here:

Run it with java -jar

Building and running

Run ant, and then:

java -jar target/javasysmon.jar

Using the library from code

Simply put the jar in your classpath, and use it like this:

import com.jezhumble.javasysmon.JavaSysMon;
JavaSysMon monitor =   new JavaSysMon();
String osName =        monitor.osName();

For full details of the API, consult the JavaDoc

Current support and limitations

  • Currently supports Mac OS X, Linux, Windows, and Solaris
  • Solaris binary is compiled on x86 on OpenSolaris, so it won't work on SPARC, and has not been tested on SunOS < 5.11
  • Solaris CPU usage only correctly reports usage for first CPU.
  • Supports Java 1.4 and above
  • CPU speed on Linux only reports correct values for Intel CPUs

Source code

The Java source code sits under src/main/java. The C source code is in src/main/c, with a subdirectory for each platform supported by JavaSysMon. The compiled binaries are stored in lib/native, and it is these that are used to build the jar when you run ant. So if you change the c source, you'll need to compile and copy the binary to lib/native before running ant in order to test your changes.


JavaSysMon uses the NetBSD (2-line) license.