benf.org :  other :  cfr

CFR - another java decompiler

CFR will decompile modern Java features - Java 8 lambdas (pre and post Java beta 103 changes), Java 7 String switches etc, but is written entirely in Java 6. (FAQ)

To use, simply run the specific version jar, with the class name you want to decompile (either as a path to a class file, or as a fully qualified classname on your classpath), and optionally the method name. (--help to list arguments).

Alternately, to decompile an entire jar, simply provide the jar path, and if you want to emit files (which you probably do!) add --outputdir /tmp/putithere

usage screenshot
Download cfr:

FAQ

Feel free to drop me a line if there's anything you think is particularly broken, bear in mind it's a work in progress (but I'd say on a par with others!)


Observations about syntactic sugar in compilation.

All of this stuff is documented (links where I find them); these are things I found particularly interesting while messing around with this.


To do...

It's got a lot of things missing, which I'm messing with, as and when time makes itself available ;)


Change history

0_78 (2014-03-28)

0_77 (2014-03-26)

0_76 (2014-03-17)

0_75 (2014-03-17)

0_74 (2014-03-17)

0_73 (2014-03-12)

0_72 (2014-03-11)

0_71 (2014-03-10)

0_70 (2014-03-09)

0_69 (2014-03-06)

0_68 (2014-02-21)

0_67 (2014-02-20)

0_66 (2014-02-19)

0_65 (2014-02-18)

0_64 (2014-02-16)

0_63 (2014-02-14)

0_62 (2014-02-13)

0_61 (2014-02-05)

0_60 (2014-01-29)

0_59 (2014-01-16)

0_58 (2013-12-19)

0_57 (2013-12-10)

0_56 (2013-12-09)

0_55 (2013-12-05)

0_54 (2013-11-29)

0_53 (2013-11-28)

0_52 (2013-11-28)

0_51 (2013-11-27)

0_50 (2013-11-26)

0_49 (2013-11-23)

0_48 (2013-11-22)

0_47 (2013-11-22)

0_46 (2013-11-20)

0_45 (2013-11-19)

0_44 (2013-11-15)

0_43 (2013-11-15)

0_42 (2013-10-17)

0_41 (2013-10-04)

0_40 (2013-10-02)

0_39 (2013-10-01)

0_38 (2013-10-01)

0_37 (2013-10-01)

0_36 (2013-09-26)

0_35 (2013-09-26)

0_34 (2013-09-13)

0_33 (2013-09-12)

0_32 (2013-09-12)

0_31 (2013-09-10)

0_30 (2013-08-29)

0_29 (2013-08-27)

0_28 (2013-08-21)

0_27 (2013-08-19)

0_26 (2013-08-09)

0_25 (2013-08-09)

0_24 (2013-08-07)

0_23 (2013-08-02)

0_22 (2013-08-01)

0_21 (2013-07-30)

0_20 (2013-07-11)

0_19 (2013-07-10)

0_18 (2013-07-04)

0_17 (2013-07-02)

0_16 (2013-06-27)

0_15 (2013-06-11)

0_14 (2013-05-30)

0_13 (2013-05-16)

0_12 (2013-05-09)

0_11 (2013-04-17)

0_10 (2013-04-05)

0_9 (2013-03-13)

0_8 (2013-03-07)

0_7 (2013-03-05)

0_6 (2013-02-01)

0_5

0_4

0_3

0_2


It goes without saying, that you should not use this to violate any laws, customs or kittens. Decompilers are fun, and that is all.


Last updated 03/2014