Contributed Software and Documentation

The following is a list of Java development tools contributed by JDE users. You are free to download and use these tools as you see fit. If you have any questions regarding contributed tools, please contact the authors or post your queries to the JDEE mailing list.

Ponce's Java Utilities


The jmaker.el library defines a command that generates a makefile with targets for all Java source files in the current directory. You can use the JDE build command to run the generated makefile and thereby build all files in the current directory. The library also defines a command that generates a makefile to build all files in a directory tree by invoking a makefile in each subdirectory.


The jsee.el package generates and displays the API documentation of the Java file in the current buffer.

Contributed by David Ponce. You can also obtain the latest version of these utilities from Ponce's home page.

JDEE Interface to Lint for Java

The jde-lint package, developed by Nascif Abousalh-Neto, provides an interface between the JDEE and the Lint4j ("Lint for Java") is a static Java source code analyzer that detects locking and threading issues and performance and scalability problems, and checks complex contracts such as Java serialization by performing type, data flow, and lock graph analysis.

The jde-lint package uses the information from your JDEE project (sourcepath, classpath and package name) to run the lint4j tool and present the result in a compilation buffer.

GNU Make Documentation

The make.hlp file lets you view documentation for the GNU make utility in Microsoft's Winhelp viewer.


The jserial.el package generates a Java serialver statement by invoking the serialver or other specified program. The package name is gained from the source code. There are two main commands: jserial-insert-serial-statement and jserial-update-serial-statement. The first inserts a statement into a class that does not already have one. If a statement is found an error is reported, and the second version must be used. Similiarly the second function work only when a serialver statement already exists. The package has been coded this way for security. These statements should not be updated accidentally as this has implications for versioning of classes.

Contributed by Philip Lord.

Printable (PDF) Version of the JDE User's Guide

Mark Mynsted used html2latex to convert the HTML version of the JDE User's Guide to TeX format. He then use LaTeX to generate the PDF version.

Decompiler Interface

decompile.el is an elisp package that detects that Emacs has opened a class file, runs the class data through a decompiler, and then replaces the class data in the buffer with a Java source representation. The package can optionally create an editable buffer, constructing a .java based name from the original .class based name, that is easily saved to disk.

To use, place decompile.el somewhere on your elisp path. Place (require 'decompile) in your .emacs file.

The package is intended to be used with Jad, but if you have another decompiler that obeys various assumptions built into decompile.el, then you should be able to use it by changing the executable name and command line option customisation variables.

The source is originally based on a package that was written by Ingo Koch, but I have modified it somewhat. Note that the comments identify Ingo as the maintainer. I'm not sure how accurate this is given that while the structure is much the same, I have almost completely rewritten everything.

It is not as complete as I would like. Things that I would like to do, or see done (hint hint), are:

Contributed by Craig McGeachie.