Java decompiler · disassembler · editor

DJ Java Decompiler

A stand-alone Windows application for reconstructing source code from compiled Java CLASS files, inspecting bytecode, and working with JAR, ZIP, APK, EAR and WAR archives.

Version 3.12.12.101 Windows Free download No JVM required for decompiling
Overview

Decompile, inspect, edit and understand Java bytecode

DJ Java Decompiler is designed to make Java class-file inspection straightforward while providing a practical Windows GUI around decompiling, disassembly and related development tools.

Decompiler & disassembler

DJ Java Decompiler reconstructs source code from compiled binary CLASS files, including complex Java applets and binaries, and provides essential information about class files.

Stand-alone Windows application

You do not need the Java Virtual Machine or another Java SDK installed to decompile files. When a JDK is installed, DJ can also compile, run, create JAR archives and run applets outside a web browser.

Integrated Java editor

DJ is more than a decompiler and disassembler: it includes a full graphical Java editor with syntax coloring. Open a CLASS file, double-click it in Explorer, or drag and drop it into DJ to see source code quickly.

Batch decompiling

Use Tools → Decompile more files… to select and decompile multiple compiled Java files at once, including a whole class tree.

Archiver

The included “Archiver” tool works with JAR, ZIP, APK, EAR, WAR and EXE archives. Create or view archives, extract files and decompile class files directly from them.

Deep class inspection

Inspect class version information, access flags, superclass, methods, interfaces, Constant Pool, fields, attributes and general information. The Hexadecimal View (F11) exposes the file at the lowest level.

DJ Java Decompiler supports OLE drag and drop, a Windows Explorer right-click context menu, saving, printing, editing and compiling generated Java code, and decompiling “dead” code. It can add original line numbers as comments in decompiled files, which is useful for debugging. The included Applet Tag Editor helps create applets quickly.

The program can decompile or disassemble CLASS files stored on a local hard disk or network drive. If you do not have write privileges in the source location, change the default output directory for the generated .jad files.

DJ Java Decompiler uses the command-line version of Jad as its traditional decompiling engine and also supports an alternative decompiler engine in version 3.12.12.101. Another Java decompiler resource is available at androiddecompiler.com.

Download DJ Java Decompiler from Neshkov.com
Download version 3.12.12.101
Revised: 25 February 2016 · See what's new
The files are digitally signed with Symantec Class 3 SHA256 Code Signing CA — Microsoft Software Validation.
Download ZIP
Screenshots

DJ Java Decompiler in action

More screenshots — DJ Java Decompiler

DJ Java Decompiler main window
DJ Java Decompiler instruction usage screenshot DJ Java Decompiler methods and Constant Pool screenshot DJ Java Decompiler hexadecimal view screenshot DJ Java Decompiler Archiver screenshot
How to use DJ Java Decompiler

Open a CLASS or JAR file and get to work

“There are only 10 types of people in the world: those who understand binary and those who don’t.”

DJ Java Decompiler is intuitive enough that you can probably skip the instructions. Once you have downloaded and installed it, use File → Open to open a CLASS or JAR file.

Open a class file. Select File → Open, or File → Open in New Window if you want a new program instance.
Or use Windows directly. Double-click the CLASS file, drag and drop it into the DJ window, or use the Windows Explorer right-click menu and choose Open with DJ.
Open a JAR archive. Select File → Open and load the JAR. It opens in the Archiver tool, where you can decompile one class or an entire class tree.
Decompile a whole class tree. Select Tools → Decompile more files…, choose Whole class tree, select the source and destination directories, and click Decompile.

Output files and write permissions

When a class file is opened and decompiled, DJ creates a temporary file with the .jad extension. By default, the output folder is the class file’s folder.

A common problem occurs when the user has no write permission in that location—for example, on CD/DVD media. To solve it, open Settings → Configuration → General, clear Use Default Output Directory for .JAD files, and choose a different output directory. A different output location is also useful when working with slow media or network drives.

Why is DJ useful?

A practical development tool for inspection, recovery and learning

Recover source

DJ Java Decompiler can help recover lost or accidentally destroyed source code.

Learn Java and the JVM

Decompiling Java is an excellent way to learn both Java and how the Java VM works. DJ makes it easy to inspect Java classes and learn from reconstructed source.

Fix and debug

Inspect and debug CLASS files when developers are slow to respond to questions that need immediate answers, and explore the sources of Java runtime libraries.

Inspect bytecode and obfuscation

Explore bytecode, including inline bytecode, and check the results of class-file obfuscation to make sure your code is adequately protected before public release.

All in all, DJ Java Decompiler can be a very handy development tool in your arsenal.

Purchase & support

DJ Java Decompiler information

Older freeware release

DJ Java Decompiler 3.7.7.81 was freeware. It can still be found at http://dj.navexpress.com/. If you already have a copy and are happy with it, you are welcome to continue using it.

If you like the program and want to help its author continue working on and improving it, a modest donation is greatly appreciated.

Android decompiler

Looking for Android decompiling?

Try AndroChef Java Decompiler.

Class-file inspection

Additional features in the View menu

  • View → Attributes displays attributes introduced in Java 1.6, including proper display of the InnerClasses attribute.
  • View → Fields shows the complete field_info structure: access_flags, attributes_count and attributes. A Save to file… option is available.
  • View → Methods, Interfaces and Constant Pool → Disassembly displays bytecode in assembly notation.
  • The Attributes tab displays specific information for the selected attribute.
  • The Exception Table tab displays the exception table for the selected method.

Using DJ Java Decompiler, you can reconstruct the source code of an applet or binary CLASS file and review methods, fields, interfaces, attributes, exceptions and other information that would normally be unavailable to anyone except the original programmer.

More Screenshots — DJ Java Decompiler

Release history

What’s new in DJ Java Decompiler

New features in version 3.12.12.101
  • Updated decompiler engine files. See Settings → Decompiler Settings and select Use alternative decompiler engine (Don’t use JAD as decompiler engine).
  • The same alternative-engine checkbox was added to Decompile more files….
  • Edit → Unescape was added to convert escaped Java entities into strings.
  • Improved handling of the BootstrapMethods attribute and new Constant Pool types: CONSTANT_InvokeDynamic, CONSTANT_MethodType and CONSTANT_MethodHandle.
  • Fixed case-sensitive file extraction in the Archiver and Search inside compressed archives tools.
New features in version 3.12.12.96
  • StackMap and StackMapTable attributes are now properly displayed.
  • Many improvements to View → Attributes, Methods, Interfaces and Constant Pool and Fields. Search capabilities were added to Methods and Constant Pool tabs; attribute-specific information and annotations are displayed in Treeview; Save to file was added; the Exception Table tab was fixed; Attributes now gives a complete description of ClassFile attributes; and an additional Fields tab was added.
  • Added View → Instruction usage: static bytecode frequency showing how often bytecodes appear in a class file.
  • Added an Instruction usage tab to Methods, Interfaces and Constant Pool for bytecode frequency in the selected method.
  • Added a new Class file viewer tool.
  • Bug fixes in the Archiver and Search for files inside compressed archives.
New features in version 3.11.11.95

Search for files inside compressed archives logo

  • Java Annotation support: RuntimeVisibleAnnotations, RuntimeInvisibleAnnotations, RuntimeVisibleParameterAnnotations and RuntimeInvisibleParameterAnnotations.
  • Improvements to Attributes, Methods, Interfaces, Constant Pool and Fields views, including search, annotations in Treeview, Save to file, Exception Table fixes, a complete ClassFile attribute description and a Fields tab.
  • Added Search for files inside compressed archives for JAR, ZIP, WAR, EAR and APK files. Search by file name and by a word or phrase inside a file; sort results by column headers and inspect detailed file information.
  • Added Imports Viewer to list import statements in the selected class file.
  • Added Methods Viewer with sorting for access flags, descriptors, method signatures, attributes and code length. Results can be exported to a tab-delimited text file.
  • The CRC MD5 SHA-1 Calculator can calculate DEX file signatures and checksums, Adler-32 and SHA-256 hashes of files or strings.
  • Improved Export to HTML with Unicode conversion for multilingual documents.
  • Added drag and drop to the Archiver.
  • Added a Tree View button in the Archiver, showing JAR, ZIP, WAR, EAR and APK archives in Treeview with XML export.
  • Added Whole class tree to Decompile more files, recursively decompiling all CLASS files and creating output subdirectories according to package names.
  • Added a Browse for files button to the Run tool for passing file names as arguments to main().
  • Syntax-highlighting bug fixes.

Search for files inside compressed archives — DJ Java Decompiler Tool

New features in version 3.10.10.93
  • Added View → Hexadecimal View (F11), with byte offsets, hexadecimal data and text representation. Search works with hexadecimal characters or words (Ctrl+F), and Go to offset… (F8) is available.
  • Changes to the decompiling engine.
  • Microsoft Windows Vista compatibility: settings and configuration files are stored in the appropriate user data folder (CSIDL_APPDATA), with separate configuration per user. Settings → Associate DJ with… affects HKEY_CURRENT_USER. For compatibility issues, contact Atanas Neshkov.
  • Added text formatting: Invert Case, ROT-13 and ROT-47.
  • View → Attributes displays newer Java attributes and properly handles InnerClasses.
  • View → Class version info shows JVM, major and minor version for the current CLASS file.
  • View → Fields displays the full field_info structure and can save data to a file.
  • Changes and fixes in Methods, Interfaces and Constant Pool, including Exception Table, Disassembly fixes, current line number, hexadecimal/decimal/binary byte-offset data, Save to file for Constant Pool and Constant Pool search.
  • Added Tools → Change multiple files extension, including recursive renaming in subdirectories.
  • Added Tools → CRC Calculator for CRC16, CRC32, MD5 and SHA1 hashes/checksums of a file or string.
  • Added Tools → HEX-DEC-BIN Calculator.
  • Added Tools → Packages Tree for the Java Platform, Standard Edition 6 package tree, with insertion into the editor or clipboard.
  • Added a Command prompt button, reading the ComSpec environment variable and opening a DOS window in the configured initial directory.
  • Added View → Java Version, Java Control Panel and Character Map.
  • Fixed Extract All Files in the Archiver, plus fixes across Search, Refresh and Toggle to Bytecode / Sourcecode view.
  • Added a new HTML help file.
  • Guestbook moved to http://www.websitetoolbox.com/guestbook/neshkov.
  • Various GUI bug fixes.
New features in version 3.9.9.91
  • New View menu items for more detailed inspection of methods, Constant Pool, interfaces and attributes.
  • DJ displays Java 1.5 access flags: ACC_ENUM, ACC_ANNOTATION, ACC_BRIDGE and ACC_VARARGS.
  • Changes to the Archiver, including changing the default output file extension (default: .jad).
  • New features in Compile, Run, JAR and Appletviewer.
  • Associate DJ with… for .class, .java, .jar and .jad files, allowing DJ to open automatically from Windows Explorer or My Computer.
  • Double-clicking Fields shows more information about field type and interpretation.
New features in version 3.7.7.81
  • Decompiler options for displaying long integers and integers using radix 8, 10 or 16.
  • Added Ctrl+F4 shortcut for File → Close.
  • New options in Configuration → Appearance and colors, including Adjust line breaks.
New features in version 3.6.6.79
  • Fixed Indents/Outdents block, suffixed/prefixed/renamed CLASS files, Line too long and syntax-coloring issues.
  • Major changes in the Archiver: a file-manager-style tool for creating and viewing archives, extracting files and decompiling CLASS files. The Use folder names stored in archive option enables decompiling a complete class tree from JAR files.
  • Added Export to HTML.
  • Added Edit → Comment (Ctrl+Alt+C) for commenting selected text.
  • Added decompiler options for Debug mode and Generate additional casts.
  • New Compile and Run features and fixes.
  • New ZIP DLLs for the Archiver.
  • Changes and fixes in Decompile more files….

Windows compatibility

Compatible with Windows 7

DJ Java Decompiler successfully passed Microsoft-designed tests for compatibility and reliability with Windows 7 and received the “Compatible with Windows 7” logo.

Intel Software Partner

Intel Software Partner

Atanas Neshkov Ltd software development and IT solutions.

Contact & legal

If you have any questions regarding DJ Java Decompiler, please email at_neshkov@yahoo.com.

See also: End-User License Agreement (EULA) · How do I Uninstall or Install DJ Java Decompiler · Privacy

Legacy visitor statistics: eXTReMe Tracker.

Download DJ Java Decompiler from Neshkov.com
Download DJ Java Decompiler and start using it now.
Version 3.12.12.101 · digitally signed files
Download ZIP