Cool Tools 16: JD-GUI Java Decompiler

There was a spirited discussion in the comments for our .NET decompiler post (hey, 2 comments is close to the record for this blog!), and this is long overdue, but in the past year, I’ve become a fanatic user of Emmanuel Dupuy’s JD-GUI Java Decompiler.  It’s free, it works, and it has the ability to decompile entire Java .jar files at once, saving all the source in a folder structure that matches the original source/package names.

The package export capability is excellent when you’d like to see what has changed between portal releases; you just decompile the WCI code before and after, and use Beyond Compare to highlight the differences between builds.

JD-GUI has been my tool of choice for many posts on this blog, and if you’re into getting down and dirty with your WebCenter Interaction Java code, I highly recommend this bad boy:

JD-GUI is a free download here, but I suggest throwing these guys a couple bucks for the donationware.  C’mon, 20 bucks, anyone?  (before you ask, yes, I contributed to the cause..)


Tags: ,

4 Responses to “Cool Tools 16: JD-GUI Java Decompiler”

    • Matt Chiste says:

      I gave up on DJ a long time ago. Their licensing is much more onerous; you have to actually contact them and get a license file which only works on a single machine – aside from the pain of not just getting a regular license key immediately, this didn’t work for me because I have a separate Virtual Machine for each of my clients and this requires a separate key for each. Give it a shot, but proceed at your own risk before plunking down any cash on this one.

  1. Prabhu says:

    lol, you stole my blog post idea :-). But this is a really cool tool. I gave up on JAD and DJD some time back and stumbled upon this and have been using every since

  2. Lee says:

    Be wary of what JD produces, it gets ternary operators completely wrong. says it’s fixed in JD-Core 0.5.5 (associated with JD-Eclipse 0.1.4) but the latest available JD-Eclipse is 0.1.3.
    The latest JD-GUI (0.3.3) is supposedly built on JD-Core 0.6.0 but still gets it wrong.

Leave a Reply