Home | About | Partners | Contact Us | Logout
VA Linux Systems
   Main Window | Package Viewer | Options Dialog | Asm Source | Simple Java Source | Colorized Java Source | Download | License

Welcome to JAssistant

Current version is 1.6.1

The package

The package is named adavid and it has the following sub-packages:

Executable programs


Manual in pdf or ps.gz.

The assistant is a class and a package browser. It is divided into two parts: the main class browser and the package viewer. A third options window may be opened to control the program behavior. The main goal of this program is to be able to find very quickly a class, its source, its methods, fields, constructors... and to be able to explore the packages. Completion, and class homonyms may be enabled. Concerning the package viewer, well, you have the package hierarchy and the class hierarchy inside a selected package, which is the inheritance hierarchy inside a package. The classes which appear with an icon marked "i" are interface classes and the ones with an "a" are abstract classes. The options window allows to put filters for the lists which are given: definition with long or short names, filter on the scope (public, package, protected, private), filter on the modifiers (native, abstract, static...), the order for the search of the sources (java, jj, decompile or disassemble), sorting options and an uptdate package button to reread all your packages. The assistant was swing free. At the beginning I was happy to use swing, which is very nice, and that's why I have a swing package too. But as time passed I saw that swing had bugs and that it was not usable in a real program because it is too slow! This is the reason why I have my own tree classes in pure AWT java! It seems now that swing has been improved, specially 1.1.1, so... I came back to it for the code viewer. This explains that the code is in majority pure AWT, and the viewer in Swing.

Using another decompiler

A plug-in interface has been created since version 1.3. To use another decompiler than mocha do:

  1. java adavid.util.JDefaultResource adavid.util.Assistant

  2. This will produce the resource file Assistant.properties. Edit it and change the fiels decompilerList by adding space separated class names.
  3. the class names that you added are interface implementations of the interface adavid.reflect.Decompiler. You have to implement this plug-in interface and it will be used automatically. Have a look at mocha.MochaGate to have an example of the interface of mocha (reflection based). You may want to used some of its static methods, specially to open the class file.


There is a whole support for automatic resource declaration and use. The idea is: it is painfull to remember a list of 30 resources for one program, which we have to do if we want to use the ResourceBundle class of Sun. This class is powerfull, but not so usefull alone. Furthermore, using resources in a java program gives always the same kind of code and it is time consuming and error prone to do the job for each of the class you want to write. Instead, I use reflection! Just define fields public to allow access, or extend a special class or implement a special interface to allow access to Bundle. There are three proposed levels: By this way, you can produce automatically a configuration file, by using adavid.util.JDefaultResource, modify it as you want and then use it transparently if your program is using one of these three classes. A zip-file is provided to show simple examples on how to use some important classes.

API and download

This package is free, you can download it provided that you agree on the license. The package has been tested under JDK1.1.7, be carreful if you are using some JDK1.2 beta versions or other JDK versions, the virtual machine may crash. Changelog, TODO and howto.

New: html/swing java source browser available, which is like javadoc on-the-fly at the source level with simple syntax highlighting.

The package distribution file is dowloadable here and the license is LGPL.
In case of update, remove your $HOME/.PackageFinder.info, run assistant with option -update or click on Update Packages in the options dialog window, bugs were fixed to find (hopefully) all the installed packages.

It contains installation instructions and the java source files. The license of the package is LGPL.
I have produced the API with javadoc in JDK1.2.2, the different produced links are index, tree , index-alll, help.

I do not plan to put  a manifest in the jar file since running under Windows requires a script with several settings.

If anyone has a non broken link to a free decompiler other than mocha, please let me know.

Known bugs

All trademarks and copyrights on this page are properties of their respective owners. Forum comments are owned by the poster. The rest is copyright 1999-2000 VA Linux Systems, Inc.