This Bugzilla instance is a read-only archive of historic NetBeans bug reports. To report a bug in NetBeans please follow the project's instructions for reporting issues.

Bug 17309

Summary: NetBeans should be able to use a decompiler
Product: java Reporter: Kevin Caswick <lebleu>
Component: UnsupportedAssignee: issues@java <issues>
Status: RESOLVED FIXED    
Severity: blocker CC: pjiricka
Priority: P2    
Version: -FFJ-   
Hardware: PC   
OS: Windows ME/2000   
Issue Type: ENHANCEMENT Exception Reporter:
Bug Depends on:    
Bug Blocks: 173063    

Description Kevin Caswick 2001-11-05 23:01:14 UTC
Forte should either include a decompiler module, or the ability to call an 
external decompiler, such that when you have a class selected in the explorer 
or object browser, it is possible to choose "Decompile..." from the tools menu 
and view the decompiled source of the class in the source editor. (and 
optionally save it from there.)

There are a couple of open source Java decompilers, but all seem to be under 
the GPL, so the calling an external program approach may be best. 

JODE (http://jode.sourceforge.net/) seems to be a good one, there are a number 
of them linked from 
http://dmoz.org/Computers/Programming/Languages/Java/Development_Tools/Translato
rs/Decompilers_and_Disassemblers/
Comment 1 Jan Chalupa 2001-11-27 11:00:34 UTC
Target milestone -> 3.3.1.
Comment 2 Svata Dedic 2002-05-21 13:54:33 UTC
*** Issue 18609 has been marked as a duplicate of this issue. ***
Comment 3 Svata Dedic 2002-05-21 13:55:20 UTC
Similar thing suggested as #18609; marking as duplicate, but see the
other issue, too, when evaluating/implementing.

Comment 4 Svata Dedic 2002-05-21 17:06:41 UTC
Cleaning up
Comment 5 Jan Becicka 2002-05-27 10:19:36 UTC
Kevin, take a look at jasm module (http://jasm.netbeans.org)
Comment 6 Marek Grummich 2002-07-19 17:01:47 UTC
Target milestone was changed from not determined to TBD
Comment 7 Jan Becicka 2002-11-04 10:04:40 UTC
http://jode.sourceforge.net: "The bytecode 
package and the core decompiler is now under 
GNU Lesser General Public License, so you can 
integrate it in your project"

#define your_project NetBeans

I think it could be cool & simple feature for 
NB 4.0.
Comment 8 Petr Jiricka 2009-09-29 15:08:29 UTC
Here is a nice decompiler that could be integrated with NetBeans (it already has an Eclipse integration):
http://java.decompiler.free.fr/

This feature is now getting more important with annotation processors that generate bytecode, such as Lombok:
http://projectlombok.org/. With Lombok, I would like to sometimes see what code was generated, as it does not directly
correspond to the original source code.
Comment 9 Tomas Zezula 2009-12-03 08:10:53 UTC
>Here is a nice decompiler that could be integrated with NetBeans (it already
>has an Eclipse integration): http://java.decompiler.free.fr/
It's a C++ code => platform specific => problem to distribute.
Comment 10 Petr Jiricka 2009-12-04 08:24:31 UTC
You are right; there could be several ways around it:
- distribute all binaries for all platforms
- place the module on the update center, and the user would get the correct binaries based on her platform
- do not bundle anything, but on the first usage of the decompiler (e.g. after double-clicking a .class file), prompt the user to enter the location where she installed the decompiler for her platform (this dialog should also contain a link to the download page).
Comment 11 Tomas Zezula 2010-02-22 08:10:47 UTC
Added disassembler on the element level as Idea has.
There is also SPI BinaryElementOpen allowing plugging of other disassemblers, if time permits I will add an impl for http://java.decompiler.free.fr/ to contrib. Anyway it will not help with lombok as it has associated source through SFBQ which has much higher priority and the disassembler is the last fallback.
Fixed in jet-main c63032b4b06b
Comment 12 Quality Engineering 2010-02-22 22:02:26 UTC
Integrated into 'main-golden', will be available in build *201002230200* on http://bits.netbeans.org/dev/nightly/ (upload may still be in progress)
Changeset: http://hg.netbeans.org/main/rev/c63032b4b06b
User: Tomas Zezula <tzezula@netbeans.org>
Log: #17309:NetBeans should be able to use a decompiler