Jacob Release History

For the newest version take a look at the Jacob page.

Table of Contents

Release History

Version 21.77

Version 21.77 has been released on January 12, 1999

Upgraded to swing 1.1 and fixed jit bug on windows jdk 1.1.7.

What's New

  1. Upgraded to swing 1.1 with its changed javax.swing.* naming scheme.
  2. You can now automatically add import statements to your source. Set your emacs cursor above a class name, Jacob looks up the full class name and inserts an import statement at the top of your source file.
  3. Separation of sourcepath and classpath. By default they are the same.

Fixed Bugs

  1. A jit bug for windows jdk 1.1.7 got fixed thanks to Zoran Pecenovic.
  2. Add classes has now a progress bar and can be canceled. Additionally, you can interupt the directory scanning process and add source files manually. This prevents a problem with linked directories that lead to infinite cycles.
  3. Changing an item in the classpath selection dialog in the first line of the list did not update the list appropriately. I think it was an awt list bug, maybe just on linux.
  4. If Jacob gets started and the specified initialisation file does not exists, some default 'Tools' will be installed nevertheless.

Version 20.74

Version 20.74 has been released on September 27, 1998

Support for Swing 1.1 beta 2.

What's New

  1. Support for Swing 1.1 beta 2.
  2. A new class dependencies tool that lists all classes that are referenced statically in the project. Helps to manually controll if you haven't forgotten to include a class in your project.
  3. Makefile generator can now be plugged in. Implement jacob.tool.JacobInterface and put the new class name in the init file at key 'MakefileClassName'. Also take a look at the source of jacob/Makefile.java as an example. What someone might want to implement is a generator for cygnus make under Windows. The one that comes with Jacob supports only Symantec or Microsoft make.

Fixed Bugs

  1. A frame problem when running Jacob's in debug mode, invoking a tool, and exiting. Well, JFrame does hide itself by default when closing it with the mouse while java.awt.Frame delegates this task to the programmer.
  2. Javancss parse error messages where not very meaningful. This was a bug, not a missing feature.
  3. Javancss had a problem with '//' comments which did not end with a newline but . That was not all. The resulting Error was not catched, since an Exception was expected. This caused the output window to close inproperly.

Version 19.69

Version 19.69 has been released on May 16, 1998

Browsing to method callees is now possible.

What's New

  1. Method callees - a list (in a separate window) of methods the currently selected method uses/contains. You can then jump to the source of these used methods and so forth. Very nice to mentally follow the control flow of your program during editing. It works not just in the same class file but for your whole project too. You can also jump once outside the project scope to the source of JDK or Swing method definitions.
  2. 'Debug' flag for Jacob's initialisation file or '-debug' startup option can now be used to print out debug information while the program is running.

Fixed Bugs

  1. Scroll bug in packages list.
  2. Jacob did throw an exception when the Tools menu had no entries and stopped executing. Now the Tools menu will be just omitted in that case and a warning message will be emitted.
  3. Height of packages, classes, and methods lists were saved and loaded for each project but not used.

Version 18.66

Version 18.66 has been released on March 8, 1998

Jacob uses now Swing 1.0.1 instead of the outdated version 0.5.1. There are also four new tool wrapper classes.

What's New

  1. Jacob now uses Swing 1.0.1 instead of version 0.5.1. Thought, swing components use the metal pl&f with its original color theme which looks not always in sync with other awt components. I want to migrate completely over from awt to swing in future versions.
  2. New tool wrapper classes. With these you can invoke out of Jacob the following tools (see http://mats.gmd.de/clemens/jacob/help.html#tools for additional information):
    Timelog (to record your development time),
    JavaDump (a tool by Matt T. Yourst which shows the basic structure of a .class file),
    JavaP (Sun's disassembler),
    a unzip wrapper to show the contents of java archives of the project's classpath.
    Jacob now secures that you don't leave it when other tools are still running.
  3. Creating a new makefile is now three times faster.

Version 17.64

Version 17.64 has been released on February 14, 1998

New interface to the Java lines of code counter (JavaNCSS). Also the user can now invoke other tools from the menu assumed someone wrote a wrapper class for such a tool. So, if anybody wants to have his/her Java application to be invoked out of Jacob's 'Tool' menu, feel free to contact me for further information/documentation.

What's New

  1. JavaNCSS is now fully integrated. This means LOC information is not only provided for whole projects but also on a package, class, and method base.
  2. New interface to external Java applications. Thought this feature is still undocumented and will be subject to change. I provide the sources for the JavaNCSS wrapper classes as an example.
  3. 'NoEmacs' flag for Jacob's initialisation file and '-noemacs' startup option for use without an editor. This feature is planned solely for JavaNCSS users who don't want to use Jacob for programming purposes.
  4. A file with absolute file names of all Java source files for the current project gets generated together with a new makefile. These data can be further used by JavaNCSS in batch mode and maybe someone finds a use for some other tool as well.
  5. Users who want to have Jacob positioned on the left side of the screen can specify "LeftSided=true" in the "Init" section in Jacob's initialisation file.
  6. A new FAQ and a new tutorial entry.

Fixed Bugs

  1. Fixed problems with Jacob's screen positioning with Linux KDE window manager (of course, if you configure KDE with "Random Placement" Jacob can't do much :-). Unfortunately Frame positioning on Unix is still quite buggy and depends a lot on the window manager (for example jdk bug #4101910).
  2. Now Jacob tests if the directory of a new project does really exist and rejects to open the project otherwise.
  3. Methods of anonymous classes are now presented with its class information. Though Jacob still can't distinguish these methods, if there is more than one anonymous class of the same type when it wants to jump to their destination. If you have a run() method and a Runnable.run() method inside the same source file, a work around would be to declare the run() method above the other method. This way Jacob could separate both, but not the other way around. Inner classes work flawlessly (and did before) in this regard.
  4. Some colour/layout improvements in the memory and thread dialogs and some speed improvements in the thread dialog.
  5. Project headline in ProjectSettings dialog did not change after opening another project.
  6. Changing the background colour did not had an effect on some dialogs that were already used in the same session.
  7. Minor classpath problem with older project files when moving them onto another system.
  8. A redundant import statement was included by the class wizard for classes that extend from a class in the same package.

Version 16.62

Version 16.62 has been released on January 12, 1998

New Class Wizard, a nasty bug fix plus minor fixes, and faster appearance of dialogs.

What's New

  1. Completely overhauled Class Wizard. It now creates a complete class or interface skeleton. The user can select class and interfaces a new class shall extend/implement out of the classes of the project and the archives in the classpath. Also packages and classes which shall be additionally imported can be selected. All implemented method bodies plus the selected methods the user wants to extend will be generated automatically as well as the import statements that are necessary.
  2. Faster Response time of bigger dialogs, but only after the first usage of each. First time appearance can still take some time. (Well, seems to be the GridBagLayout manager and depends on the platform.)

Fixed Bugs

  1. Bug in 'Change Classpath'. Did not save the changes. :-(
  2. When creating a new makefile and an error message was displayed, the busy dialog wasn't stopped before popping up the message dialog which caused Jacob to hang.
  3. File save command was not thread save.
  4. Small bug in elisp regular expression for method browsing.
  5. Removed needless and wrong menu stdout warning message.

Version 15.60

Version 15.60 has been released on December 15, 1997

Minor enhancements and bug fixes.

What's New

  1. Optionally methods are displayed in sorted order.
  2. Browsing for methods in inner classes does work now. Anonymous classes are not supported.
  3. Different classpaths are stored for each project dependent on the operation system, hardware type of the machine, and user. So now you can move your project from Windows to a Unix system and you need to set on each system the classpath only once. Afterwards Jacob will recognize which classpath to use. It's still necessary to update a project after it has been moved onto another system.
  4. A more detailed error message is given when updating a project fails.
  5. Custom files to load into Emacs in the "Edit" menu like "Makefile" can be set in the initialization file and are not hardcoded any more. But there is no kind of menu editor yet. Users have to edit the initialization file themselves. Submenus are possible.

Fixed Bugs

  1. Logic error in the code that loaded project files of earlier Jacob versions.
  2. Caught an exception that occurred when the project has been moved, but not updated, and the user tried to add classes to it.

Version 14.58

Version 14.58 has been released on November 20, 1997

This version brings mainly bug fixes and focuses on making Jacob and its project handling more platform independent.

What's New

  1. You couldn't move a project file to another destination, because absolute path names were used. Now projects can be updated. This means, you can code on one machine, move the code over to a different operating system, change the classpath to the new environment, and adjust the packages and classes automatically to the new settings. Prior to this version, you either had to create a new project file from scratch or you had to use different project files on each system and had to keep them in synchronization. But you still have to change the classpath each time manually.
  2. New -inifile command option. Now you can specify a different initialization file at startup. This way you can use the same Jacob class files to start it on a network either from a Windows or a Unix system.
  3. Two more ways to extend the automatically generated makefile.
  4. A thread and memory monitor dialog (dunno if anyone but me has a use for them, but i like 'em :).

Fixed Bugs

  1. A couple of NullPointerExceptions at different circumstances when clicking on list windows when nothing was selected. They shouldn't have stopped Jacob from working, but were pretty ugly and as a by-result disabled "Tools->Javancss Selected..." for whole packages.
  2. Fixed a bug in the initialization file class (aka "rojectSuffix=.proj" bug).
  3. make zip did not work on unix systems. Now for Unix and Windows the "zip :" rule is created differently. Anyway you can't use the same makefile on different systems but must recreate it for each environment.
  4. Found a small lisp regular expression bug. Under some circumstances jumping to a method in Emacs ended up at a place with an invocation of this method instead at it's definition/declaration.

Version 13.56

Version 13.56 has been released on November 15, 1997

What's New

  1. Method browsing.
  2. Now by user intervention packages, classes, and methods windows can be vertically resized. Their height will be stored for each project separately.
  3. This is possible due to using swing beta classes.
  4. New option Default Methods List Window Height in Preferences Dialog. It's used only when new projects are opened.
  5. "File->Export Project File..." function is removed. It existed only for debugging purposes anyway.

Fixed Bugs

  1. A single click in packages list was twice interpreted. Furthermore mouseReleased() instead of mouseClicked() is used to identify mouse clicks due to a jdk inaccuracy.
  2. Makefile dependencies for classes which don't belong to a package were not displayed appropriate.
  3. Loading class source files into Emacs created two additional junk files when the cursor of the java file was already at the end of file.
  4. After finishing the "File->Preferences..." dialog the Jacob frame was slightly but very annoyingly at the wrong position. Bug was only on Unix versions present.
  5. The class list in the main frame did not always have the exact height. Bug was only on Unix versions present.

Version 12.53

Version 12.53 has been released on November 3, 1997

What's New

  1. When creating a new makefile, a special window indicates that the program is busy.
  2. Double mouse clicks are replaced through single mouse clicks for package and class navigation.
  3. New field 'FrameHeight' in '[Init]' section in Jacob initialization file. If this field is empty, the full screen size is used.
  4. It's now possible to include your own handwritten makefile in Jacob's generated makefile to always do some extra stuff when creating the project.

Fixed Bugs

  1. There was a problem when adding new classes and the project classpath had some kind of redundancy.
  2. Closing a color dialog in the Preferences Dialog and pressing the tab-key caused a runtime exception.

Version 11.52

Version 11.52 has been released on October 27, 1998

What's New

  1. New parameter "Java Interpreter Flags" in "Edit->Project Settings...".
  2. A project with a filename which does not match *.proj gets rejected.
  3. Additional comment if an added package is not found.
  4. The directory in the File Dialog is set to the path of the former project path when opening a new project.

Fixed Bugs

  1. It was not possible to properly cancel the process of selecting a new main class (at the Project Settings Dialog).
  2. The Start Parameter at the Project Settings Dialog was not cleared when opening a new project.

Version 10.50

Version 10.50 has been released on August 25, 1997

Fixed Bugs

  1. "Help->Contents..." starts an HTML browser and loads this document into it. Under Unix the generated URL of this local file was wrong.

Version 9.49

Version 9.49 has been released on August 18, 1997

What's New

  1. New parameter "Javadoc @author" in the "File->Preferences..." dialog. This string is inserted after the @author tag in the documentation header of a new created class/interface using the Class Wizard.
  2. Added a menu shortcut for "File->Save".
  3. The Gnuclient Flag option in "File->Preferences..." is removed. Jacob now automatically determines if it runs under Windows or Unix and than uses the appropriate options for gnudoit and gnuclient. Gnuclient for Windows allows the option '-F' which sets the focus to Emacs. Jacob uses this option under Windows. Under Unix Jacob only uses gnudoit to load files.
  4. HtmlViewer from Frans van Gool replaces the JavaBrowser to view this documentation file (via "Help->Contents..."). It has it's own severe problems. But since the release of JDK 1.1.3, JavaBrowser's scroll bars are even worse.

Fixed Bugs

  1. Since JDK 1.1.3 'requestFocus()' does work again.
  2. Jacob uses now at startup 'set-frame-width' instead of 'set-screen-width', which was not compatible between GNU Emacs and XEmacs.
  3. Additionally, when there are no gnuclient flags specified in the "File->Preferences..." dialog, only gnudoit is used. Under Unix, this is all you need. Windows users should set the gnuclient options '-q' and  '-F'. Than Jacob first uses gnudoit for loading a file, gets the line number the cursor is set and then uses gnuclient '-F' to set the focus to the Emacs frame. This '-F' option is unique to gnuclient for Windows and most people do not need this functionality under Unix.

Version 8.47

Version 8.47 has been released on May 22, 1997

What's New

  1. New parameter Gnuclient Flags added to the "File->Preferences..." dialog. This lets you control Gnuclient's behavior. The parameter '-q' should always be used (to get rid of the stupid ctrl-x  # behavior). If you use the newest Gnuclient version for Windows 95/NT (Feb. 27 1997), the option '-f' or '-F' is very useful. It gives Emacs the focus after loading a file. This is the only way to change the focus from Jacob to Emacs, since the Emacs Lisp function 'focus-frame' is not implemented.

Fixed Bugs

  1. The Start Parameter (from the "Edit->Project Settings..." dialog) was not reset when loading an project which was saved with an older Jacob version.
  2. Empty RCS keyword 'Header' in the Main Class source file was not noticed when creating a Makefile.

Version 7.42

Version 7.42 has been released on May 16, 1997

What's New

  1. A Class Wizard lets you create class/interface templates.
  2. Some default sub directories can be specified in the "File->Preferences..." dialog. Whenever a new project is created, these directories will be created in the same directory, where the project '.proj' file resides.
  3. New parameter 'Start Parameter' in the "Edit->Project Settings..." dialog.

Fixed Bugs

  1. Fatal Bug occurred under some rare circumstances at the 'Add Classes' procedure.

Version 6.40

Version 6.40 has been released on May 10, 1997

What's New

  1. Help file is viewed with the help of the JavaBrowser (package) by Alexey Goloshubin and Jeremy Cook.

Fixed Bugs

  1. Inserting a package that should resides inside the "." package was not inserted at the correct place in the internal package tree.
  2. Javancss did not parse synchronized classes.
  3. There was a bug in Javancss related to inner classes and interfaces.
  4. There was a Message in German instead of English when creating a new Makefile and one existed already.
  5. There was a bug in the created Makefile in the 'zip' section, when using classes that don't belong to a package.

Version 5.39

Version 5.39 has been released on April 29, 1997

What's New

  1. Now tested under Solaris. Unfortunately it is still not tested in conjunction with Gnuserv under that system. (Please report if you encounter any problems with it.) But there are still two bugs remaining that don't exist under Windows 95.
     -  After finishing the "File->Preferences..." dialog the Jacob frame is slightly but very annoyingly at the wrong position. As a workaround, just restart Jacob. The dialog won't be used that often. 
     -  The class list in the main frame does not always have the exact height. If the Background and ListBackground color parameter do have the same value, it is not so obviously visible. 
  2. New option (background color) in the "File->Preferences..." dialog.
  3. Changed the default colors to gray (background) and black (foreground).

Fixed Bugs

  1. In the configuration management section of the created makefile a tag is inserted for every item of the project. The tag normally consists of the project name and a version number. This version number is taken from the RCS Header field in the project's main class. If there is no Header field, the count started from 2 instead of 1. (But it would be still better to use no tag at all in this case.)
  2. Create Makefile resulted in a fatal error when no RCS header field was inside the project's main class and a project tag was specified :-(

Version 4.34

Version 4.34 has been released on April 25, 1997

What's New

  1. The "File->Preferences..." dialog is now used to change the setup parameter (instead of direct editing of the "jacob.ini" file). This will make the setup process more user friendly (especially figuring out the correct Emacs and Jacob frame width values).
  2. Relative components of the classpath variable ('.' and '..') will be replaced by their canonical paths instead of only absolute paths on start up.

Fixed Bugs

  1. Did not distribute the pattern package from Steven R. Brandt. This resulted in a ClassNotFound exception when creating a makefile and both a main class and a project tag was specified. The pattern package was used only at one occasion. The needed Regex functionality is now replaced through some ordinary functions, so there is no need to redistribute that package any more.
  2. The maximum number of old files that are remembered in the File menu could be temporarily exceed the allowed value.

Version 3.32

Version 3.32 has been released on April 15, 1997

What's New

  1. The "Edit->Project Settings..." dialog assembles the old "Edit->Set Main Class..." and "Edit->Set CLASSPATH..." dialogs together with the options "Java Compiler Flags" and "Project Tag".
  2. When jacob is started for the first time, a welcome message with some basic guiding pops up.
  3. Relative components of the classpath variable ('.' and '..') will be replaced by their absolute paths on start up. Otherwise it can lead to problems, because of an bug in the Java FileDialog class that lets you change the current path for the whole application.
  4. There are more screen shots of menus and dialogs provided.

Fixed Bugs

  1. Changed parameter in mv.bat.

Version 2.30

Version 2.30 has been released on April 12, 1997

What's New

  1. Export project file to ascii file is now possible.
  2. For each project the 'classpath' variable can be set via menu.
  3. A Project can now have class files that don't belong to a package.
  4. The default JavacFlags parameter from the jacob.ini file now contains the '-deprecation' flag.

Fixed Bugs

  1. Some spelling error were corrected on this page. (I am shure there remained quite a lot. If you are a teacher don't hold yourself back and drop me a line : )
  2. Under JDK 1.1.1 the space between the package and the class list was too small.
  3. Deleting a package but viewing a sub package resulted in a crash.
  4. Deleting a package that consisted of the project's main class could also result in a crash.
  5. Deleting a class crashes the application, if this class was the last class in a package and this package was viewed in the browser.
  6. In the created 'Makefile' under the clean section the last 'cd' command always pointed to the same location.
  7. Adding a new package and a sub package of this was already there, resulted in two versions of the sub package at two different locations in the tree.

Version 1.25

Version 1.25 has been released on March 26, 1997


Chr. Clemens Lahme, email to: Clemens.Lahme@gmd.de