Sunday, May 7, 2017

jdeps on rt

Out of curiosity, I wanted to know how the classes in Java's runtime were related to each other. Happily, Java ships with a dependency too, jdeps. So, on my Mac, I ran
jdeps -dotoutput dot -verbose:class /Library/Java/JavaVirtualMachines/jdk1.8.0_65.jdk/Contents/Home/jre/lib/rt.jar
There are 20683 classes and 227874 links between them. I had a difficult time getting a graph built. GraphViz wasn't having it. I turned to GePhi and it's OpenOrd algorithm and that worked. Here's the image.
Almost art. Lots of interconnections.