Java Decompiler
A Java decompiler is a special type of decompiler which takes a class file as input and produces Java source code as output.
Java Decompilers
Jode
JODE is a Java package containing a decompiler and an optimizer for java. This package is freely available under the GNU GPL. The bytecode package and the core decompiler is now under GNU Lesser General Public License, so you can integrate it in your project.
The Jode Java decompiler reads in class files and produces something similar to the original java file. Of course this can’t be perfect: There is no way to produce the comments or the names of local variables (except when compiled with debugging) and there are often more ways to write the same thing.
The optimizer transforms class files in various ways with can be controlled by a script file. It supports the following operations:
- Renaming class, method, field and local names to shorter, obfuscated, or unique names or according to a given translation table
- Removing debugging information
- Removing dead code (classes, fields, methods) and constant fields
- Optimizing local variable allocation

JReversePro
JReversePro is a Java Decompiler / Disassembler written entirely in Java. This reverse engineering utility is issued under the GNU GPL. The utlimate objective of this project is to provide a decompiler that generates a Java object-based structure that can be programmatically inspected using a specific API.
Features:
- The software is written in 100% Java which implies you can seamlessly integrate your java applications with this.
- The .class files could be disassembled to examine the JVM bytecode.
- Command-line version now has the option to view constant pool.
- Three flavours of the software – namely the Swing-based, AWT-based and the command-line based UI are available all with the same decompiling engine for people with different needs.
- The contents of the ConstantPool could be examined as a dialog in the Swing-flavour.
- Command-line version now has the option to view constant pool.
Books Java Decompiling
| Writing for those who want to learn Java by decompilation, Nolan, a specialist in web site optimization, explains how to turn partially compiled Java bytecodes back into source code so that readers can see what the original programmer was thinking. Early chapters unravel the Java classfile format and show how Java code is stored as bytecode and executed by the JVM. Later chapters focus on how to write a Java decompiler, and a final chapter offers case studies. |
| As a Java developer, you may find yourself in a situation where you have to maintain someone else’s code or use a third-party’s library for your own application without documentation of the original source code. Rather than spend hours feeling like you want to bang your head against the wall, turn to Covert Java: Techniques for Decompiling, Patching, and Reverse Engineering. These techniques will show you how to better understand and work with third-party applications. Each chapter focuses on a technique to solve a specific problem, such as obfuscation in code or scalability vulnerabilities, outlining the issue and demonstrating possible solutions. Summaries at the end of each chapter will help you double check that you understood the crucial points of each lesson. You will also be able to download all code examples and sample applications for future reference from thepublisher’s website. Let Covert Java help you crack open mysterious codes! |
Comments (1)
Leave a Reply
- Java Source Code
Java source code is code that you write in the Java programming language. Java source code is converted to Java bytecode by the Java compiler. Java source code files usually have the .java extension. Sun recommends that Java source code files be no longer than two thousand lines. Larger source code files should be split [...]...
- Java Class
A Java class is a group of Java methods and variables. Each Java source code file can contain one public class. The name of this public class must match the name of the Java source code file. If the public class is called “ballistics,” then the filename would be “ballistics.java.” Example Java Class class Ammunition [...]...
- Java Bytecode
Java bytecode is produced by the Java compiler and executed by the JVM (Java Virtual Machine). Java bytecode isn’t exactly source code, and it isn’t exactly compiled code, it’s something in the middle. Java bytecode is one of the things that make it possible for Java code to run on many different platforms. [...]...
- Java Compiler
A Java compiler is a program which converts Java source code into Java bytecode. A basic Java compiler is included as part of the JDK (Java Development Kit). This Java compiler is called “javac”. ...
- Java Loops – For, While, and Do
Java supports three types of loops: For, While, and Do. The Java For Loop The Java for loop is a looping construct which continually executes a block of statements over range of values. Java for Loop Syntax The syntax of a for loop in Java is: for (initialization; termination; increment) { statement } Example Java [...]...





Another java decompiler – AndroChef Java Decompiler is available: http://www.neshkov.com/ac_decompiler.html