From: Blake McBride on
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
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
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
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
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