From: Blake McBride on 4 Jul 2010 10:18 Greetings, I have a sticky situation in which I am using a modified version of some large JAR files such as Hibernate. The source code to the modifications have been lost. I need these changes since my code depends on them. I figure I can get the modifications by de-compiling a compiled version of the standard source and comparing it to de-compiled version of my currend JAR files. The problem is that there are many Java decompilers (such as JAD). A brief survey by me indicates that support for high quality decompilers seems to be waning. Many appear severly out-of-date. I currently use Java 1.6 but I believe the libraries in question were compiled with 1.5 or possibly 1.4. I'm looking for a pointer to the best (open source or commercail) Java decompiler that is, hopefully, fully supported. Thank you. Blake McBride
From: Robert Kochem on 4 Jul 2010 12:26 Blake McBride schrieb: > I'm looking for a pointer to the best (open source or commercail) Java > decompiler that is, hopefully, fully supported. Have you tried the JD-GUI: http://java.decompiler.free.fr/ Free, fast and mostly very accurate. Robert
From: Tom Anderson on 4 Jul 2010 13:09 On Sun, 4 Jul 2010, Robert Kochem wrote: > Blake McBride schrieb: > >> I'm looking for a pointer to the best (open source or commercail) Java >> decompiler that is, hopefully, fully supported. > > Have you tried the JD-GUI: > http://java.decompiler.free.fr/ > > Free, fast and mostly very accurate. I've used JAD and JD (there's a command-line version; JD-GUI is, and you'd never guess this, the GUI wrapper for it), and strongly prefer JD. JAD's one advantage is that it does a much better job of getting line numbers right (ie line 23 in the output usually contains the code labelled as line 23 in the class's line number table), which is an enormous help with debugging. However, JD decompiles more code successfully, and produces much more lifelike code. It is utterly frustrating that there is no current java decompiler that is either (a) open source or (b) written in java! If we had that, i'm sure the community would rapidly barn-raise it to being an excellent tool. And it probably wouldn't randomly segfault on certain inputs, as JD does (as in, there are certain inputs which reliably cause JD to crash, but for which i can see no reason for this to be the case). tom -- these are my testing supplies
From: Arne Vajhøj on 4 Jul 2010 13:28 On 04-07-2010 13:09, Tom Anderson wrote: > On Sun, 4 Jul 2010, Robert Kochem wrote: >> Blake McBride schrieb: >>> I'm looking for a pointer to the best (open source or commercail) Java >>> decompiler that is, hopefully, fully supported. >> >> Have you tried the JD-GUI: >> http://java.decompiler.free.fr/ >> >> Free, fast and mostly very accurate. > > I've used JAD and JD (there's a command-line version; JD-GUI is, and > you'd never guess this, the GUI wrapper for it), and strongly prefer JD. > JAD's one advantage is that it does a much better job of getting line > numbers right (ie line 23 in the output usually contains the code > labelled as line 23 in the class's line number table), which is an > enormous help with debugging. However, JD decompiles more code > successfully, and produces much more lifelike code. > > It is utterly frustrating that there is no current java decompiler that > is either (a) open source or (b) written in java! If we had that, i'm > sure the community would rapidly barn-raise it to being an excellent > tool. And it probably wouldn't randomly segfault on certain inputs, as > JD does (as in, there are certain inputs which reliably cause JD to > crash, but for which i can see no reason for this to be the case). Last time the topic came up somebody recommended JReversePro. Arne
From: Arne Vajhøj on 4 Jul 2010 13:30
On 04-07-2010 10:18, Blake McBride wrote: > The problem is that there are many Java decompilers (such as JAD). A > brief survey by me indicates that support for high quality decompilers > seems to be waning. Many appear severly out-of-date. 10 years ago people considered it very cool that you could decompile. Today it is old news and only those that for some unusual reason really need the functionality are inteterested. Arne |