Available Options

All available configuration options are displayed here. The option keys and default values are also provided for users who wish to edit their configuration file.

Resource Locations. These options specify where to find Java resources on your computer, such as compilers or classpath directories.

Web Browser (browser.file = "")

and

Web Browser Command (browser.string = "")

These two settings allow you to specify how Javadoc files and links from the Help files are opened. On Windows and Mac OS X, we suggest that you leave both options blank so that the default browser of the OS will be used. On other platforms, e.g. on Linux, you need to set one or both of them to let DrJava successfully open HTML files.

The filename specified as "Web Browser", if one is set, is the executable that will be run. If no text has been entered as "Web Browser Command", then only the URL will be passed as parameter to the executable.

If text has been entered as "Web Browser Command", then any occurrence of "<URL>" will be replaced with the URL to open. If "<URL>" never occurs. then the URL to open will be appended to the very end.

Note that this means there are several ways of accomplishing the same thing. Let's assume that "/usr/bin/mozilla" is the filename of the browser. Then these settings all accomplish the same thing:

  • "/usr/bin/mozilla" as "Web Browser" and nothing as "Web Browser Command"

  • "/usr/bin/mozilla" as "Web Browser" and "<URL>" as "Web Browser Command"

  • Nothing as "Web Browser" and "/usr/bin/mozilla" as "Web Browser Command"

  • Nothing as "Web Browser" and "/usr/bin/mozilla <URL>" as "Web Browser Command"

Useful settings for Linux: Leave the "Web Browser" setting blank and enter the text specified below as "Web Browser Command".

  • Mozilla (if it is already running)

    mozilla -remote "openurl(<URL>)"
  • Mozilla (if it is not already running)

    mozilla <URL>
  • Konqueror (the KDE web browser)

    konqueror <URL>

Useful settings for Windows: If you do not want the system's default web browser, either specify the executable as "Web Browser" and leave the "Web Browser Command" blank, or leave the "Web Browser" setting blank, and enter the command line as "Web Browser Command". If the web browser's filename contains spaces, then the filename must be surrounded by double quotes in the "Web Browser Command". Example:

  • Leave the "Web Browser" setting blank and enter the following text as "Web Browser Command":

    "C:\Program Files\Internet Explorer\iexplore.exe" <URL>

Useful settings for Mac OS X: If you do not want the system's browser, we advise that you use the "Web Browser Command" and leave the "Web Browser" setting blank. If possible, use Mac OS X's "open" command as in the examples below:

  • Open in Safari: Leave the "Web Browser" setting blank and enter the following text as "Web Browser Command":

    open -b com.apple.Safari <URL>
  • Open in TextEdit: Leave the "Web Browser" setting blank and enter the following text as "Web Browser Command":

    open -b com.apple.TextEdit <URL>
Tools.jar Location (javac.location = "")

Specifies the location of the JDK's tools.jar, which contains the classes necessary for the compiler and the debugger. This file is usually found in the JDK's lib directory.

JSR14 Location (jsr14.location = ""), JSR14 Collections Path (jsr14.collectionspath = "")

Specifies the location of the JSR-14 versions of javac.jar and collect.jar, respectively, for use as an alternative compiler in DrJava. JSR-14 is an experimental compiler provided by Sun which supports generic types. The collect.jar file contains parameterized collection classes for JSR-14. (We currently support JSR-14 versions 1.0, 1.2, 1.3, 2.0, and 2.2. Note that for versions 2.0 and later, javac.jar has been renamed gjc-rt.jar.)

Extra Classpath (extra.classpath = "")

Used to specify any directories or jar files to append to the classpath of the Interactions window and the compiler. Separate the directories using the system-specific path separator (eg. colon on Unix, semicolon on Windows).

Display Options. These configurable options affect how DrJava's user interface is displayed.

Look and Feel (look.and.feel = "")

Name of the Swing LookAndFeel class which determines the general appearance of DrJava. If this option is changed while DrJava is running, the changes will not apply until you restart.

Toolbar Buttons (toolbar.icons.enabled = true, toolbar.text.enabled = true)

These radio buttons control whether the toolbar buttons contain text, icons, or both. When set manually in the config file, each of the two options can be set to true or false, though icons will be displayed if both are set to false.

Show All Line Numbers (linenum.enabled = false)

Whether to display all line numbers along the left margin of the Definitions Pane.

Save Main Window Postion (window.store.position = true)

Whether to save the position and size of the DrJava window between sessions.

Save "xxx" Dialog Postion (several choices for "xxx": dialog.clipboardhistory.store.position = true, dialog.gotofile.store.position = true, dialog.openjavadoc.store.position = true, dialog.completeword.store.position = true, dialog.jaroptions.store.position = true)

Whether to save the position and size of the indicated dialog between DrJava sessions.

Reset "xxx" Dialog Postion and Size (several choices for "xxx")

By pressing this button, you can reset the position and size of the indicated dialog to its default value. This is useful if the dialog somehow appeared outside the screen and is not accessible, e.g. when switching from a dual-screen computer to a single-screen computer.

Size of Clipboard History (clipboardhistory.store.size = 10)

How many entries are saved in the clipboard history.

Scan Class Files For Auto-Completion After Each Compile (dialog.completeword.scan.class.files = false)

When this option is enabled, a project is open, and a build directory has been set, DrJava will scan all class files after each compile and add their names to the auto-completion list. This allows DrJava to auto-complete the class names of all user classes, not just the names of the open document. This option requires additional disk accesses and therefore slows down compiles.

Font Options. Each font option is specified as a string containing the font name, style, and size, separated by dashes. The style should be in upper-case (ie. PLAIN, BOLD, ITALIC, or BOLDITALIC), while the font name must be a valid font on the system. (In most cases, using the font chooser in the Preferences window is the simplest approach.)

Main Font (font.main = Monospaced-PLAIN-12)

This font is used for the definitions pane and the tabs at the bottom of the window.

Line Numbers Font (font.doclist = Monospaced-PLAIN-12)

This font is used for the line numbers on the left side of the Definitions Pane, if the "Show All Line Numbers" option in the "Display Options" section is enabled. The actual font size will be limited by the size of the Main Font.

Document List Font (font.doclist = Monospaced-PLAIN-10)

This font is used in the list of all open documents on the left side of the window.

Toolbar Font (font.toolbar = dialog-PLAIN-10)

This font is used on the toolbar buttons, if the button names are configured to be displayed.

Color Options. Colors are defined similarly to HTML colors: as six hexadecimal digits preceded by a pound sign. The first two digits specify a red value, the next two specify a green value, and the next two specify a blue value. For example, #00FF00 would be a bright green. (In most cases, using the color chooser in the Preferences window is the simplest approach.)

Syntax Colors for Definitions

Normal Color (definitions.normal.color = #000000)

Used as the default color for program text.

Keyword Color (definitions.keyword.color = #0000FF)

Used as the color for known keywords (eg. "public", "for").

Type Color (definitions.type.color = #00007C)

Used for known primitive types (eg. "int") and capitalized words, which usually correspond to class names.

Comment Color (definitions.comment.color = #007C00)

Used as the color for all comments.

Double-quoted Color (definitions.double.quoted.color = #B20000)

Used as the color for strings, which use double quotation marks.

Single-quoted Color (definitions.single.quoted.color = #FF00FF)

Used as the color for characters, which use single quotation marks.

Number Color (definitions.number.color = #00B2B2)

Used as the color for all numbers.

Other Colors

Background Color (definitions.background.color = #FFFFFF)

Used as the background color for all panes.

Brace-matching Color (definitions.match.color = #BEFFE6)

Used as the highlight color when matching braces.

Compiler Error Color (compiler.error.color = #FFFF00)

Used as the highlight color for compiler errors and JUnit test failures.

Bookmark Color (bookmark.color = #00FF00)

Used as the highlight color for bookmarks.

Find Results Color 1/2/3/4 (find.results.color1 = #FF9933, find.results.color2 = #30C996, find.results.color3 = #30FCFC, find.results.color4 = #FF66CC)

Used as the highlight color for find results.

Debugger Breakpoint Color (debug.breakpoint.color = #FF0000)

Used as the highlight color for breakpoints.

Disabled Debugger Breakpoint Color (debug.breakpoint.disabled.color = #800000)

Used as the highlight color for disabled breakpoints.

Debugger Location Color (debug.thread.color = #64FFFF)

Used as the highlight color for the location of the current thread in the debugger, shown after a breakpoint is hit or a step has occurred.

System.out Color (system.out.color = #007C00)

Used as the color for text from System.out.

System.err Color (system.err.color = #FF0000)

Used as the color for text from System.err.

System.in Color (system.in.color = #7C007C)

Used as the color for text to be read by System.in.

Interactions Error Color (interactions.error.color = #B20000)

Used as the color for text that indicates errors in the Interactions Pane.

Debug Message Color (debug.message.color = #0000B2)

Used as the color for text displayed by the debugger.

DrJava Errors Button Background Color (rjava.errors.button.color = #FF0000)

Used as background color for the "DrJava Errors" button that is displayed in case of an internal DrJava error.

Key Bindings. Most menu items in DrJava have configurable keyboard shortcuts, along with several other navigational commands (such as moving to the beginning or end of a line). All such options are displayed on the Key Bindings panel in the Preferences window, along with their current value. Clicking on the value displays a window which allows the user to type a new key, showing any conflict with an existing key if there is one. (We recommend editing these options in the Preferences window.)

Compiler Options. Configurable options relating to compiling source code in DrJava. Note that Compiler Warnings are not shown when compiling any Java Language Level files. Also note that the Compiler Warnings options are all passed using the "-Xlint:" flag, which is a non-standard option and may not work with all implementations of the JDK.

Unchecked Warnings (show.unchecked.warnings = true)

Passes the "-Xlint:unchecked" warning to javac. This will give more detail for unchecked conversion warnings that are mandated by the Java Language Specification.

Deprecation Warnings (show.deprecation.warnings = true)

Passes the "-Xlint:deprecation" warning to javac. According to the JLS, this will show a description of each use or override of a deprecated member or class.

Path Warnings (show.path.warnings = false)

Passes the "-Xlint:path" warning to javac. According to the JLS, this will warn about non-existent path (classpath, sourcepath, etc.) directories.

Serial Warnings (show.serial.warnings = false)

Passes the "-Xlint:serial" warning to javac. According to the JLS, this will warn about missing serialVersionUID definitions on serializable classes.

Finally Warnings (show.finally.warnings = false)

Passes the "-Xlint:finally" warning to javac. According to the JLS, this will warn about finally clauses that cannot complete normally.

Fall-through Warnings (show.fallthrough.warnings = false)

Passes the "-Xlint:fallthrough" warning to javac. According to the JLS, this will check switch blocks for fall-through cases and provide a warning message for any that are found. Fall-through cases are cases in a switch block, other than the last case in the block, whose code does not include a break statement, allowing code execution to "fall through" from that case to the next case.

Debugger. All configurable options relating to the debugger.

Sourcepath (debug.sourcepath = "")

A list of directories on which to search for source files when stepping through code. The debugger will attempt to open files from these directories automatically when stepping.

Step Into Java Classes (debug.step.java = false)

Whether to step into Java source files when stepping through a suspended method call. It is recommended to put the Java source (usually distributed with the JDK) on the Sourcepath if this option is selected.

Step into Interpreter Classes (debug.step.djava = false)

Whether to step into DynamicJava source files when stepping through a suspended method call. DynamicJava is the Java interpreter used in the Interactions pane, and the source can be obtained from http://koala.ilog.fr/djava. Useful primarily when debugging DrJava itself.

Step into DrJava Classes (debug.step.drjava = false)

Whether to step into DrJava source files when stepping through a suspended method call. Useful primarily when debugging DrJava itself.

Classes/Packages To Exclude (debug.step.exclude = "")

Classes and packages that you do not wish DrJava to step into. These must be fully qualified class names or package names ending in ".*" (e.g. "java.util.*") separated by commas.

Javadoc. All configurable options relating to generating Javadoc.

Access Level (javadoc.access.level = "package")

Specifies the lowest access level for fields and methods to include in the generated documentation. Legal values are "public", "protected", "package", and "private".

Java Version for Javadoc Links (javadoc.link.version = (JDK Version))

Specifies which URL to use when generating links to Java library classes. Legal values are "1.3", "1.4", and "none" if no links to Java library classes are desired. (This option defaults to the version of the user's JDK.)

This setting also controls which of the URLs below is used for the "Open Java API Javadoc" feature.

Javadoc 1.3 URL (javadoc.1.3.link = "http://java.sun.com/j2se/1.3/docs/api")

The URL to use when generating links to JDK 1.3 library classes.

Javadoc 1.4 URL (javadoc.1.4.link = "http://java.sun.com/j2se/1.4/docs/api")

The URL to use when generating links to JDK 1.4 library classes.

Javadoc 1.5 URL (javadoc.1.5.link = "http:/java.sun.com/j2se/1.5/docs/api")

The URL to use when generating links to JDK 1.5 library classes.

Default Destination Directory (javadoc.destination = "")

If a directory is specified, it will be used as the default when generating new documentation.

Custom Javadoc Parameters (javadoc.custom.params = "")

Any custom parameters to pass to the Javadoc tool, separated by spaces. Use "javadoc -help" at a command line to view the available parameters.

Generate Javadoc From Source Roots (javadoc.from.roots = false)

If this option is enabled, then Javadoc will not only search the current package and all subpackages for files, it will also search all "enclosing" packages (those at a higher level).

Notifications. Configures how often DrJava notifies you for certain events. The notifications in this section can all be suppressed by clicking on a "Do not show this message again" checkbox (or similar) on the notification itself.

Prompt Before Quit (quit.prompt = true)

Whether to display a confirmation message before DrJava quits.

Prompt Before Resetting Interactions Pane (interactions.reset.prompt = true)

Whether to display a confirmation message before resetting the Interactions Pane.

Prompt if Interactions Pane Exits Unexpectedly (interactions.exit.prompt = true)

Whether to display a message if the Interactions Pane is exited without the Reset button being clicked.

Prompt for Javadoc Destination (javadoc.prompt.for.destination = true)

Whether to always display the destination selection dialog when starting Javadoc.

Prompt Before Cleaning Build Directory (prompt.before.clean = true)

Whether to display a confirmation message before cleaning the build directory of a project.

Automatically Save Before Compiling (save.before.compile = false)

Whether to automatically save all files each time a Compile command is chosen.

Automatically Compile Before Testing (compile.before.junit = false)

Whether to automatically compile before running JUnit tests.

Automatically Save Before Generating Javadoc (save.before.javadoc = false)

Whether to automatically save all files each time a Javadoc command is chosen.

Warn on Breakpoint Out of Sync (warn.breakpoint.out.of.sync = true)

Whether to warn if setting a breakpoint in a source file that is not in sync with its class file.

Warn if Debugging Modified File (warn.debug.modified.file = true)

Whether to warn if using the debugger on a file which has been modified since its last save.

Warn to Restart to Change Look and Feel (warn.change.laf = true)

Whether to warn that changes to the Look and Feel do not take effect until after a restart.

Warn if File's Path Contains a '#' Symbol (warn.path.contains.pound = true)

Whether DrJava should warn the user if the file being saved has a path that contains a '#' symbol. Users cannot use such files in the Interactions Pane because of a bug in Java.

Show a notification window when the first DrJava error occurs (dialog.drjava.error.popup.enabled = true)

Whether to show a popup dialog when the first internal DrJava error occurs. If this option is not selected, DrJava will try to continue quietly and only display the "DrJava Errors" button (See DrJava Errors).

Miscellaneous. These are the remaining configurable options in DrJava.

Indent Level (indent.level = 2)

Sets how many spaces to use for each level of indenting. Note that tab characters are not allowed in DrJava.

Size of Interactions History (history.max.size = 500)

Specifies how many commands will be remembered in the history of the Interactions window. Previous commands can be recalled using the up and down arrow keys.

Recent Files List Size (recent.files.max.size = 5)

Specifies how many recently used files to display in the File menu.

Automatically Close Block Comments (auto.close.comments = false)

Whether to automatically insert the string designating the end of a multi-line comment after beginning one.

Allow Assert Keyword in Java 1.4 (javac.allow.assert = false)

Whether to support the assert keyword when compiling with a JDK 1.4 or later compiler.

Keep Emacs-style Backup Files (files.backup = true)

Whether DrJava should keep a backup copy of each file that the user modifies, saved with a "~" at the end of the filename.

Clear Console After Interactions Reset (reset.clear.console = true)

Whether DrJava should clear the contents of the Console Tab each time the Interactions Pane is reset.

Allow Access of Private Members in the Interactions Pane (allow.private.access = false)

Whether private members of classes in the interactions pane should be treated as public.

Show sample of source code when fast switching (show.source.for.fast.switch = true)

Whether a sample of the source code around the current caret position should be shown in the Fast Switch window.

Require test classes in projects to end in "Test" (force.test.suffix = false)

Whether to require that JUnit test classes in projects end in "Test". If this is enabled, classes that do not end in "Test" will not be considered JUnit tests when in project mode.

JVM Args (jvm.args = "")

Command line arguments used when creating the InterpreterJVM. This is an advanced option because if you use invalid arguments, the InterpreterJVM may not start up successfully. If this happens, remove the value stored in Preferences.

Put the focus in the definitions pane after find/replace (find.replace.focus.in.defpane = false)

Whether to put the focus in the Definitions pane after using find/replace. If this option is not enabled, the focus will remain in the Find/Replace pane.