New DrJava Stable Release: drjava-stable-20100816-r5366

We have just released a new stable release of DrJava: drjava-stable-20100816-r5366. You can download it from SourceForge or from the DrJava homepage.

Available for download at .

DrJava is a lightweight programming environment for Java designed to
foster test-driven software development. It includes an intelligent
program editor, an interactions pane for evaluating program text, a
source level debugger, and a unit testing tool.

In addition to bug fixes, this stable release includes a number of new
features introduced after the last beta release:

These features include improved keyboard shortcuts, improved undo/redo
functionality outside the Definitions Pane, as well as better menus
for detached windows on the Mac.

Note: Java 1.4 compatibility has been dropped. To use DrJava, you will
need Java 5 or newer.

New features since the last beta release:

  • Keyboard shortcuts for Project menu items.
  • Menus for detached windows on Mac OS.
  • Undo/Redo for Input Box and detached Interactions Pane.
  • Keyboard shortcuts available in detached windows.
  • Displaying compiz warning only for Java older than 1.6.0_20.
  • Changing the default look-and-feel for non-Windows, non-Mac
    machines (=Linux) to the system default. This will probably
    be GTK instead of Metal, which is much prettier.

Bug fixes since last beta release:

  • Properly disabled ‘Run Project’s Main Class’ if main class not set.
  • Bugfix for a problem relating to menu item availability, which
    caused the project menu to be disabled when it should be enabled.
  • IllegalAccessException with Smart Run on non-Public class.
  • Fixed NullPointerException when removing Find All matches.
  • Fixed a bug that caused a NullPointerException when a Find All
    encountered a missing file.
  • Fixed bug StringIndexOutOfBoundsException on non-Western systems
    that use characters longer than a byte.
  • Fixed bug that caused Undo/Redo menu items to not be enabled
  • Fixed bug that caused pressing Ctrl-Z (Undo) to make the
    box disappear.
  • Fixed bug that caused { or } to be inserted on Linux when using
    “Go to Opening/Closing Brace” shortcuts.
  • Fixed a bug that enabled Undo for the Interactions Pane on Macs
    even when there was nothing to undo.
  • Fixed problem that prevented configuration of key bindings for
    actions with the same names, e.g. “New” (File) and “New” (Project).
  • Fixed bug that caused changes to Key Bindings to not be canceled

New features since the last stable release:

  • The Eclipse Java Compiler is now integrated into DrJava. DrJava
    therefore does not require the JDK anymore to compile
    programs. Note that the JDK is still required to use the debugger
    or to create Javadoc.
  • DrJava supports the OpenJDK and JavaMint (multi-stage programming
    in Java; see ) compilers.
  • JUnit 4.7 support.
  • ConcJUnit support (for concurrent unit tests; see ).
  • Access control for private and package private members now enabled
    by default.
  • DynamicJava (Interpreter) error messages are much better,
    especially those involving method and constructor invocation.
  • Added support in DynamicJava for explicit type arguments in local
    function invocations (x = foo(23)).
  • The Breakpoint, Bookmarks, and Find Results tabbed panes now have
    Previous/Next buttons and associated keyboard shortcuts for simpler
  • The Interactions Pane working directory can now be specified even
    when not using projects.
  • If DrJava cannot start, for example because of bad memory settings
    in the Preferences, DrJava will suggest that you let it reset the
  • The preferred compiler can now be set, and this setting will be
    restored when DrJava starts the next time.
  • Zoom for Print Preview.
  • New Class wizard.
  • Save Copy ability for Definitions documents, Interactions Pane and
    Console Pane contents.
  • The Java Language Level facility has been simplified. There now is
    only one language level called “Functional Java”, using the file
    extension .dj. It is comparable to the Intermediate level and
    can still compile .dj0 and .dj1 files. .dj2 files are compiled
    using the Full Java compiler. DrJava will suggest that you rename
    .dj0 and .dj1 files to .dj files, and .dj2 files to .java files.
  • DrJava can generate a custom .jar file of itself that includes
    additional files. There is a Tools/Advanced/Generate Custom
    drjava.jar menu item that takes the current DrJava executable file
    and a number of user-specified files to generate a new jar file.

    • The libraries included in the new jar file will then
      automatically be included in the classpath and be usable without
      adding them to a classpath somewhere.
    • There is no functionality to remove the libraries again from the
      modified jar file.
    • Generating a custom DrJava jar file disables the check for
      updated versions. Otherwise a user may download an updated
      version that doesnt have required libraries anymore.
  • When DrJava encounters missing files during a “Find All” search,
    it will ask the user whether to continue or abort the search.
  • Improved “New Java Class” dialog with some auto-completion.
  • Better feedback when Java API data is loaded, which may involve
    some delay if it is retrieved from the internet.
  • There is a new option in Preferences/Interactions Pane
    called “Smart Run (‘java’) Command”. If enabled (default),
    the “Run” button and the “java” command in the Interactions
    Pane detects if the class (a) is an ACM Java Task Force
    program (subclass of acm.program.Program) or (b) an applet.
    If (a), then it runs the program’s main method, but inserts
    “code=MyClass” as argument 0. If (b), it starts the
    applet viewer. Otherwise, the “java” command behaves just
    as before.
  • Right margin line.
  • Improved Save As file naming.
  • Tools->Advanced->New DrJava Instance feature.
  • Appending .jar to file name when generating custom DrJava.

Bug fixes since the last stable release:

  • Fixed some indentation bugs.
  • Fixed some GUI initialization problems that prevented DrJava from
    starting on some systems.
  • Fixed a bug that prevented DrJava from opening on MacOS 10.5 or
  • Fixed compiler error when closing curly brace missing.
  • Fixed NullPointerException in Jar Project dialog.
  • Fixed a bug that prevented users from editing External Processes.
  • Fixed a bug in un-commenting source code.
  • Fixed a bug in displaying the Auto-Import dialog in the
    Interactions Pane.
  • Improved suggestion to increase interactions JVM heap.
  • Improved responsiveness when selecting a compiler.
  • Fixed a bug that prevented users from generating Javadoc of
    Language Level files.
  • DynamicJava (Interpreter) bug fix allows the declaration of
  • Miscellaneous small DynamicJava bug fixes make it much more robust
    and correct, including better handling of member lookup, inner
    classes, enums, interfaces, raw types, static imports, switch
    statements, casts, and final variables.
  • Bugfix for comparing 0.0 == -0.0 and NaNs.
  • Bugfix in DynamicJava: Supports annotation declarations
  • Bugfix in DynamicJava: Fixes parser bug for enums
  • Bugfix in DynamicJava: Fixes implicit accessibility of interface
  • Bugfix in DynamicJava: Fixes checking of assignments from character
  • Bugfix in DynamicJava: Improves checking of casts
  • Bugfix in DynamicJava: getClass() is a special method with type
    Class for all classes
  • Bugfix in DynamicJava: Improves error messages for inner class
  • Bugfix in DynamicJava: Preserves location in wildcards
  • Bugfix in DynamicJava: Catches errors that occur during static
    initialization of a class
  • Bugfix in DynamicJava: Short-circuiting during type checking
  • Bugfix in DynamicJava: += for strings
  • Bugfix in DynamicJava: Array initializer is assigned to a non-array
  • Misc improvements to DynamicJava SoureChecker
  • Bugfix that prevented users from watching local variables in the
  • Smaller Java Language Level fixes.
  • StringIndexOutOfBoundsException During Next Word
  • Exception when double click on External process tab
  • This commit fixes some glitches in the new functional
    LL, effectively subsuming both the Elementary (.dj0)
    and Intermediate (.dj1) language levels.
  • Bugfix for throw null
  • Fixing a memory leak in DefinitionsPane.

About Mathias

Software development engineer. Principal developer of DrJava. Recent Ph.D. graduate from the Department of Computer Science at Rice University.
This entry was posted in DrJava. Bookmark the permalink.

Leave a Reply