The following are features currently present/available in latest release of jdec.

[please click here to check additionalUI features]

Decompiling a java class :

This is main feature of jdec. jdec has been tested with jdk provided from Sun Microsystems.
This point is being stressed because the java package provided from GNU which comes
as part of some Linux installations, doesnt launch jdec properly. So users who have a different jdk,
other than that from Sun, are advised to install jdk provided by Sun.

Please click on the below link to pick up the right jdk:
Download Sun jdk from Sun's web site
[Sun Jdk is a required software installation for jdec]
 

Jar functionality:
jdec is also capable of decompiling an entire jar
Also if the user thinks the jar is too big,then
he can go and update Decompiler Filters from the UI
to get results faster.

Selective decompilation:
It is possible to selective decompile single class
from within a jar. All that is required is to specify
a jar file path and qualified name of class
Jdec will automatically decompile the file The advantage
is that there is no need to decompress or decompile the
entire jar for this.

Decompiling 2 Versions:
It is possible to decompile 2 versions of the same class
using jdec 1.2. All that is required is to specify
where to pick up the 2 class files from. The source can be
either a jar or a folder. Jdec will then wither scan the jar
Or read from folder and show the result in a split pane.
However this version does not support the diff features offered
by a diff tool like winmerge for example.

Disassembling:
jdec can also produce the JVM instructions for a class file.
This is similar to the output produced by javap provided by Sun.
The Disassmebled output produced by jdec shows in a detailed way
the method bytecodes produced by javac.[java compiler]

The intention is to show a "Combined Output" in a future release of
jdec.This feature should enable the user to figure out the VM instructions
for corresponding java instruction
Check up the Roadmap for combined output feature


Local variable information:
jdec can display local variable information like name,start and end
index of variable.For this the java file must be compiled using -g
flag[javac -g ]
This information is generally not useful to the end user at all
because it only displays offset ranges and names.It can be useful
to developers of jdec for debugging problems with local variables

Exception Table Information.:
jdec can display exception table infomation.This information is displayed
when user disassembles a class file
By setting a flag "Interpret_Exception_Table" in config.properties to true
jdec can dispplay more detailed information about exception table.

What exactly is exception table?
Whenever a java file contains try/catch/finally blocks,
java compile describes these in terms of exception table
For Example:

  • Where does each guard region start and end
  • Where does the handler for each guard region start

  • Ofcourse interpreting exception table is by no means a easy task
    Many a times compiler produces overlapping entries and to correctly
    decompile try/catch/finally sometimes becomes a challenging task.
    But it can be observed that jdec does a decent job here
    Effort has been made to take nested finallys into account also.

    Constant Pool Details:
    jdec allows user to view the constant pool details of a class file
    Constant Pool contains details like MethodRefs and FieldRefs among other
    useful information.Most information can be accessed as UTF-8 strings
    in constant pool.jdec provides a detailed view of constant pool.

    Sketelon Display of Class File:
    This feature enables the user to view only method names/signatures and field
    informtion for a class file
    Basically this feature can be used to view
    all methods in a class in nice way.The Plan is to provide a feature so that
    user can view all methods in tree structure and click on any method to decompile
    it.Please check the roadmap for this.


    UI features

    Following are the Key UI features in jdec:
  • Support for all decompiler features
  • Decompiler Filters
  • Syntax Highlighting
  • Useful Help interms of FAQ,short tutotial and tips.
  • Various utility functions: