Home

Awesome

Swiss Java Knife (SJK)

SJK is a command line tool for JVM diagnostic, troubleshooting and profiling.

SJK exploits standard diagnostic interfaces of JVM (such as JMX, JVM attach and perf counters) and adds some more logic on top useful for common troubleshooting cases. SJK can also be used as a library for building application specific diagnostic tools or to enhance your code with self monitoring features.

What you can do with SJK?

See full command reference.

Download

Latest prebuild binaries Last Version

Starting sjk

java -jar sjk.jar <cmd> <arguments>
java -jar sjk.jar --commands
java -jar sjk.jar --help <cmd>

Below a few command from SJK (full command reference).

ttop

Pools thread CPU usage of the target JVM and periodically reports to the console.

More details

hh

Similar to jmap -histo.

More details

stcap, stcpy, ssa and flame

These commands provide basic sample profiler capabilities. stcap produces hyper-dense stack trace dump (about 1000 compression rate compared to text format) and ssa provides few reports over dump files. stcpy can copy data in archives produced by stcap (e.g. merging dumps or filtering selected threads).

So far following reports are available:

Dump file can be also processed programatically.

More details

mx

This command allows you to do basic operations with MBean from command line.

It can:

More details

jps

Similar to jps from JDK.

More details

gc

Report information about GC in real time. Data is retrieved via JMX.

More details

mxdump

Dumps all MBeans of target java process to JSON.