benf.org :  other :  cfr

CFR - another java decompiler

CFR will decompile modern Java features - up to and including much of Java 9, 12 & 14, but is written entirely in Java 6, so will work anywhere! (FAQ) - It'll even make a decent go of turning class files from other JVM languages back into java!

To use, simply run the specific version jar, with the class name(s) you want to decompile (either as a path to a class file, or as a fully qualified classname on your classpath). (--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

FAQ is here

Contact / Updates

Feel free to drop me a line (lee@benf.org) 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!) - Or if you want to know when an update is out, I've finally started announcing on twitter - (@LeeAtBenf)


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.

.... and other observations.....


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.152 (2021-12-11) See github for the full change list.

0.151 (2021-02-06) As usual, see github for the full change list.

0.150 (2020-05-20) .. left it too long... again! See github for every change!

0.149 (2020-02-20) .. left it too long, see github for every change!

0.148 (2019-10-31)

0.147 (2019-10-18)

0.146 (2019-07-19)

0.145 (2019-05-30)

0.144 (2019-05-09)

0.143 (2019-04-13)

0.142 (2019-04-09)

0.141 (2019-03-24)

0.140 (2019-03-05)

0.139 (2019-01-09)

0.138 (2018-12-14)

0.137 (2018-12-01)

0.136 (2018-11-24)

0.135 (2018-11-17)

0_134 (2018-11-04)

0_133 (2018-09-21)

0_132 (2018-07-06)

0_131 (2018-06-27)

0_130 (2018-06-04)

0_129 (2018-05-15)

0_128 (2018-04-30)

0_127 (2018-04-26)

...somehow, I manged to release an ancient version as 0_126! 0_127 is the real thing!
Thanks jstokes for pointing out that bit of idiocy!

0_126 (2018-04-25)

0_125 (2018-01-26)

0_124 (2018-01-04) - A flurry of mails!

0_123 (2017-10-11)

0_122 (2017-06-12)

0_121 (2017-04-05)

0_120 (2017-03-07)

0_119 (2016-11-03)

0_118 (2016-08-26)

0_117 (2016-07-27)

0_116 (2016-07-11)

0_115 (2016-03-08)

0_114 (2016-02-26)

0_113 (2016-02-17)

0_112 (2016-02-16)

0_111 (2016-02-11)

0_110 (2015-11-18)

0_109 (2015-11-17)

0_108 (2015-10-15)

0_107 (2015-10-10)

0_106 (2015-10-02)

0_105 (2015-09-20)

0_104 (2015-09-17)

0_103 (2015-09-11)

0_102 (2015-08-03)

0_101 (2015-05-18)

0_100 (2015-04-15)

beta 100! I promise, I'll release a verision 1 at some point, when I'm happy with the code!!

0_99 (2015-03-25)

0_98 (2015-03-09)

0_97 (2015-02-25)

0_96 (2015-02-10)

0_95 (2015-01-27)

0_94 (2015-01-10)

0_93 (2015-01-08)

0_92 (2014-12-18)

0_91 (2014-12-05)

0_90 (2014-11-05)

0_89 (2014-10-29)

0_88 (2014-10-04)

0_87 (2014-08-18)

0_86 (2014-08-15)

0_85 (2014-08-10)

0_84 (2014-08-08)

0_83 (2014-08-08)

0_82 (2014-07-26)

0_81 (2014-07-19)

0_80 (2014-07-07) ... been a while!

0_79 (2014-04-19)

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 - see releases!