Content from 2016-09
So after adding a dispatch mechanism into the
DISASSEMBLE function of ABCL I
also want to show a neat way of disassembling arbitrary Java classes using one
of the provided disassemblers.
First of, make sure that you have the ObjectWeb ASM library in your classpath
(everything up from version 3 should work at least, perhaps even lower
versions), note that in future releases you might be able to load it via Maven
and one of the optional contribs as well, likely via
Next up, try
(disassemble #'list) and confirm that some output is shown.
Now to show bytecode for arbitrary Java classes we've got to jump through some additional hoops - though perhaps at some point this could become a stable API as well:
(system::objectweb-disassemble (#"getResourceAsStream" (java:jclass "java.lang.Object") "/java/util/Random.class"))
I haven't tried this via the JAD disassembler, but it seems likely that a similar approach should work for it too.