Commits

Anonymous committed 4753c91

fixes from steve@xemacs.org

Comments (0)

Files changed (16)

 # along with XEmacs; see the file COPYING.  If not, write to
 # the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
 # Boston, MA 02111-1307, USA.
-VERSION = 1.01
+VERSION = 1.02
 AUTHOR_VERSION = 2.01
 MAINTAINER = Andy Piper <andyp@parallax.co.uk>
 #MAINTAINER = Paul Kinnucan <paulk@mathworks.com>
 
 srckit: srckit-std
 
-binkit: binkit-sourceinfo
+binkit: binkit-sourcedata

debug1.gif

Removed
Old image

debug2.gif

Removed
Old image

debug3.gif

Removed
Old image

etc/debug1.gif

Added
New image

etc/debug2.gif

Added
New image

etc/debug3.gif

Added
New image
Added
New image
Added
New image
Added
New image
+<HTML>
+<HEAD>
+   <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1">
+   <META NAME="GENERATOR" CONTENT="Mozilla/4.04 [en] (Win95; I) [Netscape]">
+   <TITLE>JDE User's Guide</TITLE>
+</HEAD>
+<BODY BGCOLOR="#FFFFFF">
+
+<H1>
+JDE User's Guide</H1>
+
+<H2>
+Contents</H2>
+<A HREF="#Introduction">Introduction</A>
+
+<P><A HREF="#ConfiguringJDE">Configuring the JDE</A>
+
+<P><A HREF="#Generating Code Automatically">Generating Code Automatically</A>
+
+<P><A HREF="#EditingJavaSourceFiles">Editing Java Source Files</A>
+
+<P><A HREF="#CompilingJavaPrograms">Compiling Java Programs</A>
+
+<P><A HREF="#BuildingJavaApplications">Building Java Applications</A>
+
+<P><A HREF="#RunningJavaApps">Running Java Applications</A>
+
+<P><A HREF="#RunningApplets">Running Applets</A>
+
+<P><A HREF="#DebuggingApps">Debugging Applications</A>
+
+<P><A HREF="#SettingGlobalClasspath">Setting a Global Classpath</A>
+
+<P><A HREF="#UsingProjectFiles">Using Project Files</A>
+
+<P><A HREF="#BrowsingJDKDoc">Browsing JDK Documentation</A>
+
+<P><A HREF="#BrowsingSourceCode">Browsing Source Code</A>
+
+<P><A HREF="#Customizingjde_mode">Customizing jde-mode</A>
+<H2>
+<A NAME="Introduction"></A>Introduction</H2>
+Welcome to the <I>JDE User's Guide</I>. This guide explains how to use
+the JDE to develop Java applications and applets. The guide assumes that
+you are familiar with Emacs and JavaSoft's Java development tools.
+<H3>
+About the JDE</H3>
+The Java Development Environment (JDE)&nbsp; is an Emacs Lisp package that
+interfaces Emacs to third-party&nbsp; Java application development tools,
+such as those provided by JavaSoft's Java Development Kit (JDK). The result
+is an integrated development environment (IDE) comparable in power to many
+commercial Java IDEs. Features include:
+<UL>
+<LI>
+source code editing with syntax highlighting and auto indendation</LI>
+
+<LI>
+compilation with automatic jump from error messages to responsible line
+in the source code.</LI>
+
+<LI>
+run Java application in an interactive (comint) Emacs buffer</LI>
+
+<LI>
+integrated debugging with interactive debug command buffer and automatic
+display of current source file/line when stepping through code</LI>
+
+<LI>
+browse JDK doc, using the browser of your choice</LI>
+
+<LI>
+browse your source code, using the Emacs etags facility or a tree-structured
+speedbar.</LI>
+
+<LI>
+supports latest version of JavaSoft's Java Development Kit</LI>
+
+<LI>
+runs on any platform supported by Emacs and Sun's Java SDK (e.g., Win95/NT
+and Solaris)</LI>
+
+<LI>
+easily and infinitely customizable</LI>
+
+<LI>
+works with FSF Emacs and XEmacs</LI>
+</UL>
+
+<H3>
+JDE Requirements</H3>
+The JDE requires the following software:
+<UL>
+<LI>
+<A HREF="http://www.gnu.org/">FSF Emacs</A> or <A HREF="http://www.xemacs.org/">XEmacs</A>
+on Unix platforms; the 19.34.6 version of <A HREF="http://www.cs.washington.edu/homes/voelker/ntemacs.html">NT/Emacs</A>
+on Windows platforms, for general source file editing and tool integration
+functions.</LI>
+
+<LI>
+<A HREF="ftp://ftp.python.org/pub/emacs/cc-mode.tar.gz">cc-mode</A>, version
+5.18 (or higher), an Emacs Lisp package for editing Java source files.
+Versions earlier than 5.18 contain a bug that causes the JDE pulldown menu
+to appear twice.</LI>
+
+<LI>
+<A HREF="http://www.dina.kvl.dk/~abraham/custom/">custom</A>, version 1.9960
+(or higher), an Emacs Lisp package for customizing cc-mode (and eventually
+JDE) settings,&nbsp; if you have a version of Emacs older than Emacs 20.1
+or XEmacs 20.3. Note that Emacs 20.1 and XEmacs 20.3 already include the
+latest version of custom. The separately bundled version of custom (i.e.,
+custom 1.9961) is intended only for backward compatibility with older versions
+of Emacs and XEmacs. It does <I>not</I> work with the latest versions.</LI>
+
+<LI>
+<A HREF="http://www.csd.uu.se/~andersl/emacs.shtml">andersl-java-font-lock.el</A>,
+an Emacs Lisp package for syntax coloring Java source (not required for
+Emacs/XEmacs 20.0 or greater).</LI>
+
+<LI>
+<A HREF="http://www.javasoft.com/products/jdk/1.1/index.html">Java Development
+Kit (JDK)</A> or compatible set of Java development tools (compiler, virtual
+machine, debugger, class libraries, etc.)</LI>
+
+<LI>
+Web browser (e.g., Netscape or Internet Explorer) for viewing documentation.</LI>
+
+<LI>
+latest version of <A HREF="http://wombat.doc.ic.ac.uk/emacs/browse-url.el">browse-url</A>,
+an Emacs Lisp package for invoking an HTML browser on a URL. Note that
+the version of browse-url.el distributed with NT/Emacs 19.34.6 is an out-of-date
+version that does not provide functionality required by JDE. So, if you
+are using NT/Emacs, you must download and install the latest version of
+browse-url.el. Further, if you are using NT/Emacs, to benefit fully from
+browse-url, you must install <A HREF="http://www.cs.washington.edu/homes/voelker/ntemacs.html#browse_url">shellex</A>
+support for browse-url.</LI>
+
+<BR><A HREF="http://www.cygnus.com/misc/gnu-win32/">bash</A> or other Unix-style
+shell highly recommended for Windows95/NT environments.</UL>
+
+<H3>
+JDE Components</H3>
+The JDE distribution includes the following files:
+<UL>
+<LI>
+<A HREF="../jde.el">jde.el</A>. Defines jde-mode, a major Emacs mode for
+developing Java code.</LI>
+
+<LI>
+<A HREF="../jde-run.el">jde-run.el</A>. Runs Java applications and applets</LI>
+
+<LI>
+<A HREF="../jde-db.el">jde-db.el</A>. interfaces Emacs to the jdb debugger.</LI>
+
+<LI>
+<A HREF="../jde-gen.el">jde-gen.el</A>. contains code generation templates.</LI>
+
+<LI>
+<A HREF="../speedbar.el">speedbar.el</A>. A JDE version of a tree-structured
+source code browser developed by Eric Ludlam.</LI>
+
+<LI>
+<A HREF="../speedbar.el">imenu.el</A>. Indexes symbols in Java source code.
+Required by the speedbar. (Note: the JDE distribution includes imenu.el
+because recent distributions of XEmacs do not.)</LI>
+
+<LI>
+<A HREF="../jtags">jtags</A> is a bash shell script that tags Java source
+hierarchies.</LI>
+
+<LI>
+<A HREF="../jtags.csh">jtags</A> is a c shell script that tags Java source
+heierarchies.</LI>
+</UL>
+
+<H3>
+Latest Version</H3>
+See the <A HREF="http://sunsite.auc.dk/jde/">Emacs JDE Home Page</A> for
+instructions on downloading and installing the most recent version of the
+JDE>
+<H3>
+Contacting the Author</H3>
+Please send bug reports and enhancement suggestions to Paul Kinnucan at
+<A HREF="mailto:paulk@mathworks.com">paulk@mathworks.com</A>.
+<H2>
+<A NAME="ConfiguringJDE"></A>Configuring the JDE</H2>
+The JDE is highly customizable. You can specify everything from what compiler
+the JDE uses to compile Java source files to what color it uses to color
+comments in a source file. You configure the JDE by setting the values
+of configuration variables. Some of these variables are defined by the
+JDE itself; some are defined by the packages on which the JDE relies, such
+as cc-mode, custom, speedbar, and so on. The names of configuration variables
+defined by the JDE begin with jde-. The variables defined by other packages
+have other prefixes.
+
+<P>You can use any of the following methods to set configuration variables
+<BR>&nbsp;
+<UL>
+<LI>
+insert Lisp <TT>setq</TT> forms in your Emacs initialization (<TT>.emacs</TT>)
+file</LI>
+
+<BR>For example, the following form tells the JDE not to turn on font-locking
+(syntax coloring).
+<BR><TT>(setq jde-use-font-lock nil)</TT>
+<BR>&nbsp;
+<LI>
+interactively, using keyboard commands</LI>
+
+<BR>The JDE provides commands for setting some configuration variables.
+For example, the command
+<BR><TT>M-x set-compile-options</TT>
+<BR>sets the variable <TT>jde-compile-option-command-line-args</TT> to
+a string of compiler command-line arguments that you specify. The JDE passes
+this string to the compiler whenever you invoke the JDE compile command.
+<BR>&nbsp;
+<LI>
+interactively, using the Emacs customization feature</LI>
+</UL>
+
+<H3>
+About the Emacs Customization Feature</H3>
+The Emacs customization feature is a new feature that allows you to locate
+and set configuration variables by interacting with text "widgets" (buttons,
+text fields, checkboxes, menus) displayed in a customization buffer. (You
+can think of such a buffer as the Emacs equivalent of a dialog box). The
+customization feature arranges all Emacs customization variables, including
+those provide by Emacs extension packages, such as cc-mode and the JDE,
+in a tree-structured hierarchy of customization groups. You can navigate
+up and down the customization tree by clicking navigation buttons in customization
+buffers. To display the root customization buffer (the Emacs group), type
+<TT>M-x customize</TT>. The root buffer displays the next layer of customization
+groups in the hierarchy. You can navigate to these groups by clicking their
+names, and so on, until you reach the group containing the variable(s)
+you want to set.
+
+<P>The buffer for each group lists the variables and subgroups that the
+group contains. For each variable, the buffer lists the variable's current
+value and documentation. You can change the current value by interacting
+with text widgets associated with the variable.&nbsp; Each variable has
+an associated State button that displays a menu of options for setting
+the variable's value. The options include applying a change permanently
+or only for the duration of the current session or restoring the variable's
+default value. If you choose to apply a change permanently, Emacs saves
+the new value in a customization file. By default, the customization file
+is your .emacs file.You can specify another file by setting an option in
+the Custom Group. For more information, see <A HREF="http://www.dina.kvl.dk/~abraham/custom/">custom.</A>
+<BR>&nbsp;
+<H3>
+&nbsp;JDE Customization Groups</H3>
+The JDE defines a top-level customization group, the JDE Group, for JDE
+configuration variables. The JDE Group itself contains the following subgroups
+<H4>
+Compile Option Group</H4>
+Specifies compile options corresponding to the command-line arguments (e.g.,
+-d) accepted by the JDK compiler, javac. When you execute the JDE compile
+command, the JDE uses the settings of this group to construct a list of
+command-line arguments that it passes to the Java compiler that the JDE
+uses to compile Java source programs. The compiler is itself an option
+that you can specify (see the Project Option Group). You can specify command-line
+arguments directly by setting the value of the <TT>jde-compile-option-command-line-args</TT>
+variable. You can display the customization buffer for the Compile Option
+Group by selecting <B>Options->Compile</B> from the <B>JDE</B> menu.
+<H4>
+Run Option Group</H4>
+Specifies run-time options corresponding to the command-line arguments
+(for example, -classpath) accepted by the JDK virtual machine, java. When
+you execute the JDE Run command,&nbsp; the JDE uses the settings of this
+group to construct a list of command-line arguments that it passes to the
+Java interpreter used by the JDE to run applications. This group also contains
+options for specifying non-java command-line arguments (in case you want
+to use a vm that accepts a different set of arguments than java does) and
+for specifying arguments to be passed to the application (as opposed to
+the virtual machine interpreting the application.) You can display the
+customization buffer for the Run Option Group by selecting <B>Options->Run</B>
+from the <B>JDE</B> menu.
+<H4>
+Debug Option Group</H4>
+Specifies run-time options corresponding to the command-line arguments
+(for example, -classpath) accepted by the JDK debugger, jdb. jdb accepts
+the same command-line arguments as java. However, the JDE maintains two
+parallel sets of configuration variables for these programs in case you
+want to use a different set of options for running a program in debug mode
+then you use for running it normally. When you execute the JDE Debug command,&nbsp;
+the JDE uses the settings of this group to construct a list of command-line
+arguments that it passes to the Java debugger used by the JDE to run applications
+in debug mode. You can display the customization buffer for the Debug Option
+Group by selecting <B>Options->Debug</B> from the <B>JDE</B> menu.
+<H4>
+Autocode Group</H4>
+Specifies templates used to generate code automatically.
+<H4>
+Project Options Group</H4>
+Specify all other JDE options. You can display the customization buffer
+for the Debug Option Group by selecting <B>Options->Debug</B> from the
+<B>JDE</B> menu.
+<H2>
+<A NAME="Generating Code Automatically"></A>Generating Code Automatically</H2>
+The JDE provides a set of commands that generate skeleton Java code for
+you. These commands fall into two categories:
+<UL>
+<LI>
+commands that create source buffers</LI>
+
+<LI>
+commands that create code at the current point in a buffer</LI>
+</UL>
+
+<H3>
+Buffer Creation Commands</H3>
+These commands prompt you to enter the path to a new Java source file.
+They then create a buffer for the new file and insert a template for a
+class of the same name as the newly created file. In particular, the command
+<UL>
+<LI>
+<B>Files->JDE New->Class</B> creates a buffer containing a generic Java
+public class.</LI>
+
+<LI>
+<B>Files->JDE New->Console</B> creates a buffer containing&nbsp; the main
+class of a Java console application.</LI>
+
+<LI>
+<B>Files->JDE NEw->Custom</B> prompts you to create any of the above buffers
+or a custom (user-defined) buffer.</LI>
+</UL>
+You can create an empty Java class buffer&nbsp; by selecting <B>Files->Open</B>
+(<TT>C-x f</TT>) and entering the path for a new file whose root name is
+the same as the class you want to create and whose extension is <TT>.java.</TT>
+
+<P>The following JDE customization variables control creation of autocoded
+Java source buffers:
+<BR>&nbsp;
+<TABLE BORDER WIDTH="100%" >
+<TR>
+<TH>Variable</TH>
+
+<TH>Group</TH>
+
+<TH>Variable</TH>
+</TR>
+
+<TR>
+<TD><TT>jde-gen-class-buffer-template</TT></TD>
+
+<TD>Autocode</TD>
+
+<TD>Defines a template for a generic public class buffer.</TD>
+</TR>
+
+<TR>
+<TD><TT>jde-gen-console-buffer-template</TT></TD>
+
+<TD>Autocode</TD>
+
+<TD>Defines a template for a console application buffer.</TD>
+</TR>
+
+<TR>
+<TD><TT>jde-gen-buffer-templates</TT></TD>
+
+<TD>Autocode</TD>
+
+<TD>Specifies templates available to create Java buffers.</TD>
+</TR>
+</TABLE>
+&nbsp;
+<BR>See&nbsp; <A HREF="#CustomizingAutocode">Customizing Autocode Templates</A>
+for information on how to customize the class autocode templates.
+<H3>
+Commands that Generate Code at Point</H3>
+The following commands generate code at the current point in the buffer:
+<UL>
+<LI>
+<B>JDE->Generate->Get/Set Pair</B> generates an instance variable and a
+get and set method for that variable</LI>
+
+<LI>
+<B>JDE->Generate->Listener->Action</B> generates and registers an action
+listener for a specified component.</LI>
+
+<LI>
+<B>JDE->Generate->Listener->Window</B> generates and registers a window
+listener for a specified window.</LI>
+
+<LI>
+<B>JDE->Generate->Listener->Mouse</B> generates and registers a mouse listener
+for a specified component.</LI>
+
+<LI>
+<B>JDE->Generate->Custom</B> allows you to select any of the above templates
+or a custom (user-defined) template.</LI>
+</UL>
+&nbsp;The following variables control generation of code at point:
+<BR>&nbsp;
+<TABLE BORDER WIDTH="100%" >
+<TR>
+<TH>Variable</TH>
+
+<TH>Group</TH>
+
+<TH>Variable</TH>
+</TR>
+
+<TR>
+<TD><TT>jde-gen-get-set-var-template</TT></TD>
+
+<TD>Autocode</TD>
+
+<TD>Defines a get/set method pair template.</TD>
+</TR>
+
+<TR>
+<TD><TT>jde-gen-listener-action-template</TT></TD>
+
+<TD>Autocode</TD>
+
+<TD>Defines an action listener template.</TD>
+</TR>
+
+<TR>
+<TD><TT>jde-gen-listener-window-template</TT></TD>
+
+<TD>Autocode</TD>
+
+<TD>Defines a window listener template.</TD>
+</TR>
+
+<TR>
+<TD><TT>jde-gen-listener-mouse-template</TT></TD>
+
+<TD>Autocode</TD>
+
+<TD>Defines a mouse listener template.</TD>
+</TR>
+
+<TR>
+<TD><TT>jde-gen-code-templates</TT></TD>
+
+<TD>Autocode</TD>
+
+<TD>Specifies available code templates.</TD>
+</TR>
+</TABLE>
+&nbsp;
+<BR>See&nbsp; <A HREF="#CustomizingAutocode">Customizing Built-In Templates</A>
+for information on how to customize&nbsp; templates.
+<H3>
+<A NAME="CustomizingAutocode"></A>Customizing Built-In Templates</H3>
+You can customize JDE autocode templates, using the Emacs customization
+feature.
+
+<P>To customize an autocode template:
+<OL>
+<LI>
+Select JDE->Options->Autocode</LI>
+
+
+<P>The JDE displays a customization buffer containing the autocode templates.
+<BR>&nbsp;
+<LI>
+Edit the template to suit your needs.</LI>
+
+
+<P>The JDE uses the template format defined by <TT>tempo.el</TT> to represent
+class templates. Each template consists of a list of strings, symbols,
+and functions, each of which represents content to be inserted successively
+into the buffer at the current point. The strings represent fixed content.
+The symbols and functions represent variable content. See the docstring
+for the function <TT>tempo-define-template</TT> for more information, including
+the meaning of special symbols such as <TT>'n></TT>.
+<BR>&nbsp;
+<LI>
+Select the state button associated with the template.</LI>
+
+
+<P>A menu pops up with a list of options for saving your changes.
+<BR>&nbsp;
+<LI>
+Save your changes.</LI>
+
+
+<P>Select <B>Save for Future Sessions</B> if you want your changes to apply
+to all projects. If you want your changes to apply only to the current
+projects, select <B>Set for Current Session</B>. Then select <B>JDE->Options->Save
+Project</B> to save your changes in the current project's project file.</OL>
+
+<H3>
+Creating Custom Templates</H3>
+The JDE considers any command (interactive function) that inserts code
+into a buffer at point to be a template. The JDE uses the&nbsp; Emacs tempo
+library to create built-in templates. You can use tempo to create your
+own, add-on templates (see the&nbsp;&nbsp; <TT>tempo-define-template </TT>for
+more information) or&nbsp; create templates&nbsp; from scratch. In either
+case, once you have created a template, you can add it to the JDE's lists
+of available code and/or buffer templates,&nbsp; using the JDE's jde-gen-code-templates
+and/or jde-gen-buffer-templates variables, respectively. Adding a template
+to these lists enables you to invoke the templates from the JDE menus.
+When adding a template, you need to specify a unique title for the template.
+These titles enable you to specify the templates when invoking them, using
+the JDE's custom code template commands (<B>Files->JDE New->Custom</B>
+and <B>JDE->Generate->Custom</B>). You can use auto completion to enter
+a template title when invoking a custom code generation command. Note that
+you can specify different sets of templates for different projects, by
+setting and saving the template list variables in project files.
+<H2>
+<A NAME="EditingJavaSourceFiles"></A>Editing Java Source Files</H2>
+To edit an existing Java source file, load it into an Emacs buffer by executing
+<TT>C-x f</TT>. Loading a Java source file into a buffer causes the buffer
+to enter into <TT>java-mode</TT>, a variant of the standard Emacs <TT>cc-mode</TT>
+for editing source files written in C and related languages. Java mode
+offers all the specialized source file editing commands of <TT>cc-mode</TT>
+plus functions for compiling, running, and debugging Java source files.
+You can invoke the commands by selecting them from the <B>JDE</B> menu
+that <TT>java-mode</TT> displays on the Emacs menu bar or by typing the
+commands in the Emacs minibuffer (see the figure below).
+
+<P><IMG SRC="fig1.gif" HEIGHT=255 WIDTH=425>
+<H2>
+<A NAME="CompilingJavaPrograms"></A>Compiling Java Programs</H2>
+The <TT>jde-compile</TT> command (<B>JDE->Compile, </B><TT>C-c C-v C-c</TT>)
+compiles the Java source file in the current buffer, using <TT>javac</TT>,
+the Java compiler provided by the JDK, or another compiler that you specify
+(see <A HREF="#SpecifyingCompiler">Specifying a Compiler</A>). The compile
+command displays the output of the compiler in a separate compilation buffer.
+If a compilation buffer does not exist, the compile command creates the
+buffer; otherwise, it reuses the existing compile output buffer. The compilation
+buffer operates in <TT>compilation-mode</TT>, a standard Emacs buffer mode.
+This mode greatly simplify locating compilation errors in the Java source
+code. For example, to find the line that cause a compilation error, simply
+click the error message in the compilation buffer.
+<H3>
+Compilation Options</H3>
+The JDE allows you to specify compilation options by setting compilation
+variables.You can use the Emacs customization feature to set compilation
+variables interactively. To use the customization feature, select <B>Options->Compile</B>
+from the <B>JDE</B> menu. (See <A HREF="#ConfiguringJDE">Configuring the
+JDE</A> for more information on using the customization feature). In some
+cases, the JDE also provides functions for setting the buffer-local values
+of the compilation variables. To save the compilation settings in the project
+file (see <A HREF="#UsingProjectFiles">Using Project Files</A>) for the
+current source buffer, select <B>Options->Update Project</B> from the <B>JDE</B>
+menu.
+
+<P>The following table lists the JDE compilation variables and the functions
+used to set them.
+<BR>&nbsp;
+<TABLE BORDER=2 CELLPADDING=5 WIDTH="100%" >
+<TR>
+<TH>
+<CENTER><B>Name&nbsp;</B></CENTER>
+</TH>
+
+<TH>
+<CENTER><B>Group</B></CENTER>
+</TH>
+
+<TH>
+<CENTER><B>Usage&nbsp;</B>&nbsp;</CENTER>
+</TH>
+</TR>
+
+<TR>
+<TD VALIGN=TOP><TT>jde-compiler</TT></TD>
+
+<TD VALIGN=TOP>Project&nbsp;</TD>
+
+<TD VALIGN=TOP>Specifies the compiler (javac, by default)&nbsp; to use
+to compile the code in the current source buffer. The command <TT>jde-set-compiler</TT>
+sets the buffer-local value of this option.&nbsp;</TD>
+</TR>
+
+<TR>
+<TD VALIGN=TOP><TT>jde-compile-option-command-line-</TT>&nbsp;
+<BR><TT>args</TT>&nbsp;</TD>
+
+<TD VALIGN=TOP>Compile</TD>
+
+<TD VALIGN=TOP>Specifies a string of command-line arguments to be passed
+to the compiler. The command <TT>jde-set-compile-options</TT> sets the
+buffer-local value of this variable.&nbsp;</TD>
+</TR>
+
+<TR>
+<TD VALIGN=TOP><TT>jde-global-classpath</TT></TD>
+
+<TD VALIGN=TOP>Project&nbsp;</TD>
+
+<TD VALIGN=TOP>Specify class paths for compile, run, and debug commands.
+The command<TT> jde-set-global-classpath</TT> sets the buffer-local value
+of this variable.&nbsp;</TD>
+</TR>
+
+<TR>
+<TD VALIGN=TOP><TT>jde-compile-option-classpath</TT></TD>
+
+<TD VALIGN=TOP>Compile&nbsp;</TD>
+
+<TD VALIGN=TOP>Specifies the classpath for compile command. If set, this
+variable overrides <TT>jde-global-classpath</TT>.&nbsp;</TD>
+</TR>
+
+<TR>
+<TD VALIGN=TOP><TT>jde-quote-classpath</TT></TD>
+
+<TD VALIGN=TOP>Project&nbsp;</TD>
+
+<TD VALIGN=TOP>Quote the classpath argument.</TD>
+</TR>
+
+<TR>
+<TD VALIGN=TOP><TT>jde-compile-option-directory</TT></TD>
+
+<TD VALIGN=TOP>Compile&nbsp;</TD>
+
+<TD VALIGN=TOP>Specifies the directory into which to place the compiled
+class.&nbsp;</TD>
+</TR>
+
+<TR>
+<TD VALIGN=TOP><TT>jde-compile-option-deprecation</TT></TD>
+
+<TD VALIGN=TOP>Compile&nbsp;</TD>
+
+<TD VALIGN=TOP>Warn of use or override of a deprecated member or class&nbsp;</TD>
+</TR>
+
+<TR>
+<TD VALIGN=TOP><TT>jde-compile-option-debug</TT></TD>
+
+<TD VALIGN=TOP>Compile&nbsp;</TD>
+
+<TD VALIGN=TOP>Generate information about local variables for debug tools.&nbsp;</TD>
+</TR>
+
+<TR>
+<TD VALIGN=TOP><TT>jde-compile-option-nodebug</TT></TD>
+
+<TD VALIGN=TOP>Compile&nbsp;</TD>
+
+<TD VALIGN=TOP>Do not generate line number or local variable debugging
+information.&nbsp;</TD>
+</TR>
+
+<TR>
+<TD VALIGN=TOP><TT>jde-compile-option-optimize</TT></TD>
+
+<TD VALIGN=TOP>Compile&nbsp;</TD>
+
+<TD VALIGN=TOP>Directs the compiler to try to generate faster code.&nbsp;</TD>
+</TR>
+
+<TR>
+<TD VALIGN=TOP><TT>jde-compile-option-optimize-</TT>&nbsp;
+<BR><TT>interclass</TT>&nbsp;</TD>
+
+<TD VALIGN=TOP>Compile</TD>
+
+<TD VALIGN=TOP>Enable interclass optimizations.&nbsp;</TD>
+</TR>
+
+<TR>
+<TD VALIGN=TOP><TT>jde-compile-option-depend</TT></TD>
+
+<TD VALIGN=TOP>Compile&nbsp;</TD>
+
+<TD VALIGN=TOP>Analyze dependencies.</TD>
+</TR>
+
+<TR>
+<TD VALIGN=TOP><TT>jde-compile-option-vm-args</TT></TD>
+
+<TD VALIGN=TOP>Compile&nbsp;</TD>
+
+<TD VALIGN=TOP>Specify command-line arguments for Java interpreter used
+to run the compiler.&nbsp;</TD>
+</TR>
+
+<TR>
+<TD VALIGN=TOP><TT>jde-compile-option-verbose</TT></TD>
+
+<TD VALIGN=TOP>Compile&nbsp;</TD>
+
+<TD VALIGN=TOP>Print verbose messages.</TD>
+</TR>
+
+<TR>
+<TD VALIGN=TOP><TT>jde-compile-option-nowarn</TT></TD>
+
+<TD VALIGN=TOP>Compile&nbsp;</TD>
+
+<TD VALIGN=TOP>Turn off warnings.</TD>
+</TR>
+
+<TR>
+<TD VALIGN=TOP><TT>jde-compile-option-encoding</TT></TD>
+
+<TD VALIGN=TOP>Compile&nbsp;</TD>
+
+<TD VALIGN=TOP>Specify the source file encoding name, such as EUCJIS\SJIS.&nbsp;</TD>
+</TR>
+</TABLE>
+&nbsp;
+<H2>
+<A NAME="BuildingJavaApplications"></A>Building Java Applications</H2>
+The <B>JDE->Build</B> command builds or rebuilds an application. This command
+has two operating modes: java and make. In java mode, this command uses
+javac's built-in make facility to rebuild a project. In make mode, this
+command uses a user-specified make utility, such as GNU make, to rebuild
+a project. See&nbsp; <A HREF="#SampleMakefile">Sample Makefile</A>&nbsp;
+for an example of a makefile for building a Java project. JDE configuration
+variables control which mode is used. In particular, if the variable <TT>jde-build-use-make</TT>
+is non-<TT>nil</TT>, this command invokes the make program specified by
+the variable <TT>jde-make-program</TT>. If the variable <TT>jde-make-args</TT>
+is a non-empty string, this function uses its contents to invoke make;
+otherwise, it prompts you to enter command-line arguments for make. If
+<TT>jde-build-use-make</TT> is <TT>nil</TT>, this function invokes javac
+on the source file specified by <TT>jde-run-app-class</TT>, with the <TT>-depend</TT>
+option. This causes javac to recompile all missing or out-of-date files
+required to run the application's main class.
+
+<P>The following table summarizes the usage of the build configuration
+variables.
+<BR>&nbsp;
+<TABLE BORDER=2 CELLPADDING=5 WIDTH="100%" >
+<TR>
+<TH>Name</TH>
+
+<TH>Group</TH>
+
+<TH>Usage</TH>
+</TR>
+
+<TR>
+<TD VALIGN=TOP><TT>jde-build-use-make</TT></TD>
+
+<TD VALIGN=TOP>Project</TD>
+
+<TD>A non-nil values causes the JDE to use a make utility (specified by
+<TT>jde-make-program</TT>) to execute the <B>JDE->Build</B> command. A
+nil values causes the JDE to use <TT>javac</TT> with the <TT>-depend</TT>
+option to execute the <B>JDE->Build</B> command.</TD>
+</TR>
+
+<TR>
+<TD VALIGN=TOP><TT>jde-make-program</TT></TD>
+
+<TD VALIGN=TOP>Project</TD>
+
+<TD>Specifies the name of the make utility used to execute the <B>JDE->Build</B>
+command. The default values is <TT>make</TT>.</TD>
+</TR>
+
+<TR>
+<TD VALIGN=TOP><TT>jde-make-args</TT></TD>
+
+<TD VALIGN=TOP>Project</TD>
+
+<TD>Specifies a string of command-line arguments (for example, "-f mymakefile
+all") to be passed to the make utility used to execute the JDE->Build command.
+If the null string (""), the JDE prompts the user to enter the command-line
+arguments in the minibuffer.</TD>
+</TR>
+</TABLE>
+&nbsp;
+<H3>
+<A NAME="SampleMakefile"></A>Sample Makefile</H3>
+The following is a sample makefile that you can use as a model for creating
+makefiles to build Java projects.
+
+<P><TT>JDK = d:/jdk1.2/lib/classes.zip</TT>
+<BR><TT>JMATH = d:/jmath/src</TT>
+<BR><TT>CLASSPATH = $(JMATH);$(JDK)</TT>
+<BR><TT>COMPILER = javac</TT>
+<BR><TT>VM = java</TT>
+<BR><TT>COPTIONS = -g -deprecation</TT>
+<BR><TT>ROPTIONS =</TT>
+
+<P><TT>CLASSES = Test.class \</TT>
+<BR><TT>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; JMathError.class
+\</TT>
+<BR><TT>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; JMathException.class
+\</TT>
+<BR><TT>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; LinearSystem.class</TT>
+
+<P><TT>.SUFFIXES: .java .class</TT>
+
+<P><TT>all : $(CLASSES)</TT>
+
+<P><TT># Rebuild (if necessary) and run the JMath test suite.</TT>
+<BR><TT>run: $(CLASSES)</TT>
+<BR><TT>&nbsp;$(VM) -classpath "$(CLASSPATH)" jmath.Test</TT>
+
+<P><TT># Remove all class files from the project directory.</TT>
+<BR><TT>clean:</TT>
+<BR><TT>&nbsp;rm *.class</TT>
+
+<P><TT># Implicit rule for making Java class files from Java</TT>
+<BR><TT># source files.</TT>
+<BR><TT>.java.class:</TT>
+<BR><TT>&nbsp;$(COMPILER) $(COPTIONS) -classpath "$(CLASSPATH)"&nbsp; $?</TT>
+<H2>
+<A NAME="RunningJavaApps"></A>Running Java Applications</H2>
+The JDE allows you to run a Java application as an Emacs subprocess. You
+can run multiple applications concurrently, but only one instance of each
+application at a time. The JDE displays each application's standard and
+error output in an Emacs common interface (<TT>comint</TT>) buffer. You
+can interact with applications that accept command line input via the <TT>comint</TT>
+buffer. When interacting with an application, you can use any of <TT>comint-mode</TT>'s
+extensive set of command-line history commands to speed interaction. To
+run an application, enter
+<BLOCKQUOTE><TT>M-x jde-run</TT></BLOCKQUOTE>
+or select <B>Java->Run App</B> on the Emacs menubar or type <TT>C-c C-v
+C-r</TT>.
+<H3>
+Run-Time Options</H3>
+The JDE allows you to specify run-time options by setting run variables.You
+can use the Emacs customization feature to set run-time variables interactively.
+To use the customization feature, select <B>Options->Run</B> from the <B>JDE</B>
+menu. (See <A HREF="#ConfiguringJDE">Configuring the JDE</A> for more information
+on using the customization feature). In some cases, the JDE also provides
+functions for setting the buffer-local values of the compilation variables.
+To save the compilation settings in the project file (see <A HREF="#UsingProjectFiles">Using
+Project Files</A>) for the current source buffer, select <B>Options->Update
+Project</B> from the <B>JDE</B> menu.
+
+<P>The following table lists the JDE run-time variables and the functions
+used to set them.
+<BR>&nbsp;
+<TABLE BORDER=2 CELLPADDING=5 WIDTH="100%" >
+<TR>
+<TH>
+<CENTER><B>Variable</B></CENTER>
+</TH>
+
+<TH>
+<CENTER><B>Group</B></CENTER>
+</TH>
+
+<TH>
+<CENTER><B>Usage</B></CENTER>
+</TH>
+</TR>
+
+<TR>
+<TD VALIGN=TOP><TT>jde-run-mode-hook</TT></TD>
+
+<TD VALIGN=TOP>Project&nbsp;</TD>
+
+<TD VALIGN=TOP>List of hook functions run by <TT>jde-run-mode</TT>.&nbsp;</TD>
+</TR>
+
+<TR>
+<TD VALIGN=TOP><TT>jde-run-application-class</TT></TD>
+
+<TD VALIGN=TOP>Project&nbsp;</TD>
+
+<TD VALIGN=TOP>Name of the Java class to run. The command <TT>jde-run-set-app</TT>
+sets the buffer-local value of this variable.&nbsp;</TD>
+</TR>
+
+<TR>
+<TD VALIGN=TOP><TT>jde-run-java-vm</TT></TD>
+
+<TD VALIGN=TOP>Project&nbsp;</TD>
+
+<TD VALIGN=TOP>Specify Java interpreter for non-Windows platforms. The
+command <TT>jde-run-set-vm</TT> sets the buffer-local value of this variable.&nbsp;</TD>
+</TR>
+
+<TR>
+<TD VALIGN=TOP><TT>jde-run-java-vm-w</TT></TD>
+
+<TD VALIGN=TOP>Project&nbsp;</TD>
+
+<TD VALIGN=TOP>Specify Java interpreter for Windows platforms. The command
+<TT>jde-run-set-vm-w</TT> sets the buffer-local value of this variable.&nbsp;</TD>
+</TR>
+
+<TR>
+<TD VALIGN=TOP><TT>jde-global-classpath</TT></TD>
+
+<TD VALIGN=TOP>Project&nbsp;</TD>
+
+<TD VALIGN=TOP>Specify class paths for compile, run, and debug commands.
+The command<TT> jde-set-global-classpath</TT> sets the buffer-local value
+of this variable.&nbsp;</TD>
+</TR>
+
+<TR>
+<TD VALIGN=TOP><TT>jde-run-option-classpath</TT></TD>
+
+<TD VALIGN=TOP>Run&nbsp;</TD>
+
+<TD VALIGN=TOP>Specifies the classpath for&nbsp; the Java interpreter.
+This option overrides the jde-global-classpath option.&nbsp;</TD>
+</TR>
+
+<TR>
+<TD VALIGN=TOP><TT>jde-run-option-verbose</TT></TD>
+
+<TD VALIGN=TOP>Run&nbsp;</TD>
+
+<TD VALIGN=TOP>Print messages about the running process.&nbsp;</TD>
+</TR>
+
+<TR>
+<TD VALIGN=TOP><TT>jde-run-option-properties</TT></TD>
+
+<TD VALIGN=TOP>Run&nbsp;</TD>
+
+<TD VALIGN=TOP>Specify property values.</TD>
+</TR>
+
+<TR>
+<TD VALIGN=TOP><TT>jde-run-option-heap-size</TT></TD>
+
+<TD VALIGN=TOP>Run&nbsp;</TD>
+
+<TD VALIGN=TOP>Specify the initial and maximum size of the interpreter
+heap.&nbsp;</TD>
+</TR>
+
+<TR>
+<TD VALIGN=TOP><TT>jde-run-option-stack-size</TT></TD>
+
+<TD VALIGN=TOP>Run&nbsp;</TD>
+
+<TD VALIGN=TOP>Specify size of the C and Java stacks.</TD>
+</TR>
+
+<TR>
+<TD VALIGN=TOP><TT>jde-run-option-garbage-</TT>&nbsp;
+<BR><TT>collection</TT>&nbsp;</TD>
+
+<TD VALIGN=TOP>Run</TD>
+
+<TD VALIGN=TOP>Specify garbage collection options.&nbsp;</TD>
+</TR>
+
+<TR>
+<TD VALIGN=TOP><TT>jde-run-option-java-profile</TT></TD>
+
+<TD VALIGN=TOP>Run&nbsp;</TD>
+
+<TD VALIGN=TOP>Enable Java profiling.</TD>
+</TR>
+
+<TR>
+<TD VALIGN=TOP><TT>jde-run-option-heap-profile</TT></TD>
+
+<TD VALIGN=TOP>Run&nbsp;</TD>
+
+<TD VALIGN=TOP>Output heap profiling data.</TD>
+</TR>
+
+<TR>
+<TD VALIGN=TOP><TT>jde-run-option-verify</TT></TD>
+
+<TD VALIGN=TOP>Run&nbsp;</TD>
+
+<TD VALIGN=TOP>Verify classes.</TD>
+</TR>
+
+<TR>
+<TD VALIGN=TOP><TT>jde-run-option-vm-args</TT></TD>
+
+<TD VALIGN=TOP>Run&nbsp;</TD>
+
+<TD VALIGN=TOP>Specify command-line arguments to be passed to the Java
+vm. The command jde-run-set-args sets the buffer-local value of this variable.&nbsp;</TD>
+</TR>
+
+<TR>
+<TD VALIGN=TOP><TT>jde-run-option-application-args</TT></TD>
+
+<TD VALIGN=TOP>Run&nbsp;</TD>
+
+<TD VALIGN=TOP>Specify command-line arguments to pass to the application.
+The command <TT>jde-run-set-app-args </TT>sets the buffer-local value of
+this variable.&nbsp;</TD>
+</TR>
+</TABLE>
+&nbsp;
+<H2>
+<A NAME="RunningApplets"></A>Running Applets</H2>
+The JDE lets you run an applet as a subprocess of the current Emacs session.
+To run an applet, enter
+<BLOCKQUOTE>M-x jde-run-applet</BLOCKQUOTE>
+or select <B>Java->Run Applet</B> from the Emacs menu bar or type <TT>C-c
+C-v C-a</TT>. If you type the command <TT>jde-run-applet</TT>, the JDE
+prompts you to enter the name of the document that contains the applet.
+By default, It opens the specified document in <TT>appletviewer</TT>, the
+applet viewer suppled with the JDK. You can specify another viewer via
+the <TT>jde-run-applet-viewer</TT> variable. If you select <B>Java->Run
+Applet</B>, the JDE assumes by default that you want to view a document
+called <TT>index.html</TT> and that that document is located in the current
+directory. You can specify another document via the <TT>jde-run-applet-doc</TT>
+variable. The JDE opens the specified document in the current viewer.
+<H3>
+Applet Run-Time Options</H3>
+The JDE allows you to specify run-time options for applets by setting JDE
+configuration variables.You can use the Emacs customization feature to
+set applet run-time variables interactively. To use the customization feature,
+select <B>Options->Run</B> from the <B>JDE</B> menu. (See <A HREF="#ConfiguringJDE">Configuring
+the JDE</A> for more information on using the customization feature). In
+some cases, the JDE also provides functions for setting the buffer-local
+values of the compilation variables. To save the compilation settings in
+the project file (see <A HREF="#UsingProjectFiles">Using Project Files</A>)
+for the current source buffer, select <B>Options->Update Project</B> from
+the <B>JDE</B> menu.
+
+<P>The following table lists the JDE applet run-time variables and the
+functions used to set them.
+<BR>&nbsp;
+<TABLE BORDER=2 CELLPADDING=5 WIDTH="100%" >
+<TR>
+<TH>
+<CENTER><B>Variable</B></CENTER>
+</TH>
+
+<TH>
+<CENTER><B>Group</B></CENTER>
+</TH>
+
+<TH>
+<CENTER><B>Usage</B></CENTER>
+</TH>
+</TR>
+
+<TR>
+<TD VALIGN=TOP>jde-run-applet-viewer</TD>
+
+<TD VALIGN=TOP>Project&nbsp;</TD>
+
+<TD VALIGN=TOP>Specify name of viewer to use to display page containing
+the applet. The command <TT>jde-run-set-applet-viewer</TT> sets the buffer-local
+value of this variable.&nbsp;</TD>
+</TR>
+
+<TR>
+<TD VALIGN=TOP>jde-run-applet-doc</TD>
+
+<TD VALIGN=TOP>Project&nbsp;</TD>
+
+<TD VALIGN=TOP>Specify name of document containing applet to be viewed.
+The command <TT>jde-run-set-applet-doc</TT> sets the buffer-local value
+of this variable.&nbsp;</TD>
+</TR>
+</TABLE>
+&nbsp;
+<H2>
+<A NAME="DebuggingApps"></A>Debugging Applications</H2>
+To debug an application:
+<OL>
+<LI>
+Use <TT>jde-db-set-source-paths</TT> to specify the paths of any source
+code that you expect to visit while debugging your application (see <A HREF="#SpecifyingSourceCodePaths">Specifying
+Source Code Paths</A>). If you suspect that a problem is occurring in the
+Java API, you should include the API source files in your source path.</LI>
+
+<LI>
+Compile your source files with the <TT>-g</TT> option (see <A HREF="#CompilingJavaPrograms">Compiling
+Java Programs</A>). This causes the compiler to insert information needed
+by the debugger into your application's class files.</LI>
+
+<LI>
+Specify the app's main class either by running the <TT>jde-run-set-app</TT>
+command (you need only do this once) or by starting the debugger from the
+buffer that contains the source file for the main class.</LI>
+</OL>
+
+<H3>
+Starting the Debugger</H3>
+The jde-db command (<B>JDE->Debug</B>, <TT>C-c C-v C-d</TT>) starts the
+debugger and opens a debugger interaction window.
+
+<P><IMG SRC="debug1.gif" HEIGHT=383 WIDTH=585>
+<H3>
+Running an Application Step-by-Step</H3>
+First set a breakpoint at the line where you want to begin stepping through
+your program (see <A HREF="#SettingBreakpoints">Setting Breakpoints</A>).
+You can set other breakpoints at this point as well. Then, at the debugger
+prompt (<TT>></TT>), type the <TT>run</TT> command. The debugger runs your
+program, stopping at the initial breakpoint. The JDE splits the Emacs window
+into two frames. One shows the debugger interaction buffer. The other frame
+displays the source file containing the line at which your program has
+stopped. An arrow (=>) points to the current line. The menu bar of the
+source buffer displays a menu (<B>Jdb</B>) of debug commands.
+
+<P><IMG SRC="debug3.gif" HEIGHT=383 WIDTH=641>
+
+<P>At this point, you can step through your code by entering commands in
+either the Java source buffer or the jdb interaction buffer.
+<UL>
+<LI>
+In the source buffer, choose <B>Jdb->Step</B> (<TT>C-x C-a C-s</TT>) or
+<B>Jdb->Next</B> (<TT>C-x C-a C-n</TT>) to step into or step over the current
+line, respectively. Select Jdb->Continue (C-x C-a C-r) to continue to the
+next breakpoint or to the end of your program, whichever comes first.</LI>
+
+<LI>
+In the jdb buffer, enter <TT>step</TT>, <TT>next</TT>, or <TT>cont</TT>
+at the <TT>jdb</TT> command prompt.</LI>
+</UL>
+The debugger executes the current line and stops at the next line. If the
+next line is in another source file, the debugger opens the source file
+in the source buffer (replacing the existing file) and positions the display
+at the new stopping point. At this point, you can enter a debugger command
+to display the value of a variable, set or clear a breakpoint, or perform
+some other operation.
+
+<P><B>Note</B>. A blank source buffer indicates that the debugger cannot
+find the source file into which you have stepped. You should check your
+source path setting (see <A HREF="#SpecifyingSourceCodePaths">Specifying
+Source Code Paths</A>) to ensure that it includes all source files in the
+execution path of your program.
+<H3>
+<A NAME="SettingBreakpoints"></A>Setting Breakpoints</H3>
+You can set breakpoints in your program from either of two places: the
+debugger interaction buffer or the source buffer created by the debugger.
+When setting breakpoints from the source code buffer, you can set breakpoints
+only in classes whose source is displayed in the buffer. If you want to
+set breakpoints at other points in your program, you must set them from
+the debugger interaction buffer.
+
+<P>Since the debugger does not create a source code buffer until it has
+reached the first breakpoint, you must set the first breakpoint from the
+debugger buffer. Thereafter, you can use the source buffer to set breakpoints
+whose source is displayed in the buffer.
+<H4>
+Setting Breakpoints from the Debugger Buffer</H4>
+The <TT>stop in</TT> command sets a breakpoint in a specified function.
+For example,
+<BLOCKQUOTE><TT>> stop in myapp.Main.main</TT></BLOCKQUOTE>
+sets a breakpoint in the main method of <TT>myapp.Main</TT> class. The
+stop at command sets a breakpoint at a particular line. For example,
+<BLOCKQUOTE><TT>> stop at myapp.Main:20</TT></BLOCKQUOTE>
+sets a breakpoint at line 20 of <TT>myapp.Main</TT> class. Use the <TT>clear</TT>
+command to clear a breakpoint from a specified line. For example,
+<BLOCKQUOTE><TT>> clear myapp.Main:20</TT></BLOCKQUOTE>
+clears the breakpoint set at line 20 of <TT>myapp.Main</TT>.
+<H4>
+Setting Breakpoints in the Source Buffer</H4>
+To set a breakpoint on any executable line in the source file buffer, click
+on the line and select <B>Jdb->Set Breakpoint</B> (<TT>C-x SPC</TT>). To
+clear a breakpoint from a line in the current buffer, click on the line
+and select <B>Jdb->Remove Breakpoint</B> (<TT>C-x C-a C-d</TT>).
+<H3>
+<A NAME="SpecifyingSourceCodePaths"></A>Specifying Source Code Paths</H3>
+Type <TT>M-x jde-db-set-source-paths</TT> to specify the source paths of
+files you might visit while debugging your app. The JDE displays a prompt
+in the minibuffer. Enter the source paths separated by colons (on Unix
+systems) or semicolons (on Win32 systems) and press enter.
+
+<P>You must specify the paths of the top-level directories of any source
+code that you might visit while debugging your application. The source
+code directory structure must mirror your app's package structure. For
+example, suppose that your application includes a set of classes packaged
+in the <TT>myapp</TT> directory. Then, the source for those classes must
+be reside in a directory named <TT>myapp</TT> and you must specify the
+path of <TT>myapp</TT>'s parent directory.
+
+<P><B>Tip:</B> If you want to step through the JDK source code, select
+the source code install option when you install the JDK and the use <TT>jde-db-set-source-paths</TT>
+to specify the directory containing the source code. You need specify only
+the path of the top-level directory. The JDE will use the JDK's package
+structure to find the source code in the subdirectories.
+
+<P><B>Tip:</B> Specify source paths in your <TT>prj.el</TT> file (see <A HREF="#SavingProjSettings">Saving
+Project Settings</A>) to avoid having to set them every time you start
+a session. For example, entering
+<BLOCKQUOTE><TT>(jde-db-set-source-paths "c:/jdk/src/;c:/java_projects/")</TT></BLOCKQUOTE>
+in your <TT>prj.el</TT> file tells the JDE to look for source files in
+the specified directories when stepping through your applications.
+<H3>
+Displaying Variables</H3>
+The debugger lets you display the value of any local variable currently
+in scope. To display a variable from the debugger buffer, enter <TT>print
+x</TT> at the debugger prompt where <TT>x</TT> is the name of the variable
+whose value you want to display. The debugger displays the value of the
+variable in the debugger buffer. To display a local, in-scope variable
+whose source is displayed in the debugger source buffer, put the point
+on the variable and select <B>Jdb->Print Expression</B> or type <TT>C-x
+C-a C-p</TT>. To display all variables in scope, enter <TT>locals</TT>
+at the debugger command prompt in the debugger buffer.
+
+<P>When the debugger displays a user-defined object, it prints the value
+returned by the object's <TT>toString()</TT> method. By default, the toString()
+method returns the object's id. You can override the toString() method
+to return a more informative result, such as the values of the object's
+fields.
+<H3>
+Debug Options</H3>
+The JDE allows you to specify debug options by setting JDE configuration
+variables.You can use the Emacs customization feature to set debug variables
+interactively. To use the customization feature, select <B>Options->Debug</B>
+from the <B>JDE</B> menu. (See <A HREF="#ConfiguringJDE">Configuring the
+JDE</A> for more information on using the customization feature). In some
+cases, the JDE also provides functions for setting the buffer-local values
+of the compilation variables. To save the compilation settings in the project
+file (see <A HREF="#UsingProjectFiles">Using Project Files</A>) for the
+current source buffer, select <B>Options->Update Project</B> from the <B>JDE</B>
+menu.
+
+<P>The following table lists the JDE run-time variables and the functions
+used to set them.
+<BR>&nbsp;
+<TABLE BORDER=2 CELLPADDING=5 WIDTH="100%" >
+<TR>
+<TH>
+<CENTER><B>Variable</B></CENTER>
+</TH>
+
+<TH>
+<CENTER><B>Group</B></CENTER>
+</TH>
+
+<TH>
+<CENTER><B>Usage</B></CENTER>
+</TH>
+</TR>
+
+<TR>
+<TD VALIGN=TOP><TT>jde-db-debugger</TT></TD>
+
+<TD VALIGN=TOP>Project&nbsp;</TD>
+
+<TD VALIGN=TOP>Specify debugger. The command <TT>jde-db-set-debugger</TT>
+sets the buffer-local value of this variable.&nbsp;</TD>
+</TR>
+
+<TR>
+<TD VALIGN=TOP><TT>jde-db-source-directories</TT></TD>
+
+<TD VALIGN=TOP>Project&nbsp;</TD>
+
+<TD VALIGN=TOP>Specify location(s) of source files that can be visited
+while stepping through a program. The command <TT>jde-db-set-source-paths</TT>
+sets the buffer-local value of this variable.&nbsp;</TD>
+</TR>
+
+<TR>
+<TD VALIGN=TOP><TT>jde-db-mode-hook</TT></TD>
+
+<TD VALIGN=TOP>Project&nbsp;</TD>
+
+<TD VALIGN=TOP>Customization hook for jde-db inferior mode.&nbsp;</TD>
+</TR>
+
+<TR>
+<TD VALIGN=TOP><TT>jde-global-classpath</TT></TD>
+
+<TD VALIGN=TOP>Project&nbsp;</TD>
+
+<TD VALIGN=TOP>Specify class paths for compile, run, and debug commands.
+The command<TT> jde-set-global-classpath</TT> sets the buffer-local value
+of this variable.&nbsp;</TD>
+</TR>
+
+<TR>
+<TD VALIGN=TOP><TT>jde-db-option-classpath</TT></TD>
+
+<TD VALIGN=TOP>Debug&nbsp;</TD>
+
+<TD VALIGN=TOP>Specifies the classpath for&nbsp; the Java interpreter.
+This option overrides the jde-global-classpath option.&nbsp;</TD>
+</TR>
+
+<TR>
+<TD VALIGN=TOP><TT>jde-db-option-verbose</TT></TD>
+
+<TD VALIGN=TOP>Debug&nbsp;</TD>
+
+<TD VALIGN=TOP>Print messages about the running process.&nbsp;</TD>
+</TR>
+
+<TR>
+<TD VALIGN=TOP><TT>jde-db-option-properties</TT></TD>
+
+<TD VALIGN=TOP>Debug&nbsp;</TD>
+
+<TD VALIGN=TOP>Specify property values.</TD>
+</TR>
+
+<TR>
+<TD VALIGN=TOP><TT>jde-db-option-heap-size</TT></TD>
+
+<TD VALIGN=TOP>Debug&nbsp;</TD>
+
+<TD VALIGN=TOP>Specify the initial and maximum size of the interpreter
+heap.&nbsp;</TD>
+</TR>
+
+<TR>
+<TD VALIGN=TOP><TT>jde-db-option-stack-size</TT></TD>
+
+<TD VALIGN=TOP>Debug&nbsp;</TD>
+
+<TD VALIGN=TOP>Specify size of the C and Java stacks.</TD>
+</TR>
+
+<TR>
+<TD VALIGN=TOP><TT>jde-db-option-garbage-</TT>&nbsp;
+<BR><TT>collection</TT>&nbsp;</TD>
+
+<TD VALIGN=TOP>Debug</TD>
+
+<TD VALIGN=TOP>Specify garbage collection options.&nbsp;</TD>
+</TR>
+
+<TR>
+<TD VALIGN=TOP><TT>jde-db-option-java-profile</TT></TD>
+
+<TD VALIGN=TOP>Debug&nbsp;</TD>
+
+<TD VALIGN=TOP>Enable Java profiling.</TD>
+</TR>
+
+<TR>
+<TD VALIGN=TOP><TT>jde-db-option-heap-profile</TT></TD>
+
+<TD VALIGN=TOP>Debug&nbsp;</TD>
+
+<TD VALIGN=TOP>Output heap profiling data.</TD>
+</TR>
+
+<TR>
+<TD VALIGN=TOP><TT>jde-db-option-verify</TT></TD>
+
+<TD VALIGN=TOP>Debug&nbsp;</TD>
+
+<TD VALIGN=TOP>Verify classes.</TD>
+</TR>
+
+<TR>
+<TD VALIGN=TOP><TT>jde-db-option-vm-args</TT></TD>
+
+<TD VALIGN=TOP>Debug&nbsp;</TD>
+
+<TD VALIGN=TOP>Specify command-line arguments to be passed to the Java
+vm. The command jde-db-set-args sets the buffer-local value of this variable.&nbsp;</TD>
+</TR>
+
+<TR>
+<TD VALIGN=TOP><TT>jde-db-option-application-args</TT></TD>
+
+<TD VALIGN=TOP>Debug&nbsp;</TD>
+
+<TD VALIGN=TOP>Specify command-line arguments to pass to the application.
+The command <TT>jde-db-set-app-args </TT>sets the buffer-local value of
+this variable.&nbsp;</TD>
+</TR>
+</TABLE>
+&nbsp;
+<H2>
+<A NAME="SettingGlobalClasspath"></A>Setting a Global Classpath</H2>
+The <B>Compile Options</B> buffer and the&nbsp; <TT>jde-set-compile-options</TT>
+command allow you to set a classpath that applies only to compilation.
+However, any path that you set in this way applies only to compilations.
+If you want the class path to apply to invocations of the java interpreter
+and debugger as well, use the <TT>jde-set-global-classpath</TT> command.
+The JDE lets you set the <TT>-classpath</TT> options of the Java compiler,
+interpreter, and debugger to a common path. To set the <TT>-classpath</TT>
+option for all three tools, enter
+<BLOCKQUOTE><TT>M-x jde-set-classpath</TT></BLOCKQUOTE>
+at the command line. The JDE displays a prompt in the minibuffer. Enter
+the class path, using the appropriate separator character (colon for Unix
+platforms, semicolon for Windows). For example,
+<BLOCKQUOTE><TT>.;d:jdk1.1.3/lib/classes.zip</TT></BLOCKQUOTE>
+<B>Note</B>. Enclose the class path in quotation marks if you are using
+a Unix shell on a Windows platform to prevent the shell from interpreting
+the semicolons as statement separators.
+<H2>
+<A NAME="UsingProjectFiles"></A>Using Project Files</H2>
+A project file is a Lisp file that the JDE loads and evaluates whenever
+you open a Java source file belonging to a specific project. Project files
+allow you to save and restore project-specific JDE configurations. For
+example, you can use a project file to set the value of the <TT>jde-global-classpath</TT>
+variable to a project-specific classpath automatically whenever you load
+a file belonging to that project.
+<H3>
+How the JDE Finds Project Files</H3>
+To simplify the task of finding project files, the JDE makes two assumptions.
+First, it assumes that all Java source files relating to a particular project
+live in a single directory tree. Second, it assumes that all project files
+have the same file name. The name assumed by default is&nbsp; prj.el. You
+can use the JDE configuration variable <TT>jde-project-file-name</TT> to
+specify another name. When you open a Java source file, the JDE looks for
+a project file in the directory containing the source file. If it cannot
+find a project file in the source file directory, it searches up the directory
+tree until it finds a project file or reaches the root of the directory
+tree. If the JDE finds a project file, it loads and evaluates the contents
+of the file as the last step in creating the buffer containing the Java
+source file.
+<H3>
+Project File Contents</H3>
+A project file can contain any Lisp code that can be evaluated correctly
+as the last step in creating a Java source buffer. For example, a project
+file can contain code that sets the value of&nbsp; JDE configuration variables.
+In general, a project file can contain any code that could be implemented
+as a jde-mode hook function. In fact, you can think of a project file as
+a project-specific jde-mode hook function.
+<H3>
+Creating a Project File</H3>
+The easiest way to create a project file is to use the jde-save-project
+command (<B>JDE->Options->Save Project</B>). This command saves the current
+values of all the JDE configuration variables in the project file for the
+selected Java buffer. (To be precise, the command inserts Lisp code in
+the project file that restores the current settings of the configuration
+variables; if such code already exists in the file, it replaces it with
+updated code.) If the project file does not exist, the command creates
+the project file. Thus, to create a project file that sets JDE configuration
+variables to project-specific values:
+<OL>
+<LI>
+Open any source file belonging to the project.</LI>
+
+<BR>&nbsp;
+<LI>
+Set the values of the JDE configuration variables to the appropriate values
+for the project to which the source file belongs.</LI>
+
+<BR>See&nbsp; <A HREF="#ConfiguringJDE">Configuring the JDE</A> for information
+on how to set the values of the JDE configuration variables.
+<BR>&nbsp;
+<LI>
+Select <B>Options->Save Project</B> from the <B>JDE</B> menu to create
+a project file in the directory containing the source file.</LI>
+</OL>
+Once you have created the project file, you can insert additional configuration
+code into the file if desired. Note that the <TT>jde-save-project</TT>
+command edits rather than replaces existing project files. Thus, you can
+use the command to update configuration variable settings without disturbing
+any other configuration code that you have inserted manually into the project
+file.
+<OL>&nbsp;</OL>
+
+<H2>
+<A NAME="BrowsingJDKDoc"></A>Browsing JDK Documentation</H2>
+The <TT>jde-browse-jdk-doc</TT> command (<B>JDE->Browse JDK Doc</B>, <TT>C-c
+C-v C-n</TT>) opens the JDK documentation in a browser. By default, this
+command displays the JDK documentation page at JavaSoft's web site. To
+display a different copy, set the variable <TT>jde-jdk-doc-url</TT> to
+the url of the index page of the copy you want to be displayed.
+<H2>
+<A NAME="BrowsingSourceCode"></A>Browsing Source Code</H2>
+You can use Emacs' etags facility or the speedbar to browse your Java source
+code.
+<H3>
+Using the Speedbar</H3>
+To use the speedbar, select Speedbar from the JDE menu. The speedbar opens
+in a separate window, showing a tree-structure list of the Java source
+files in the current directory.
+
+<P><IMG SRC="fig2.gif" HEIGHT=287 WIDTH=227>
+
+<P>Click on the + button in front of any file. The node for the file expands,
+showing the methods, class and instance variables, and classes defined
+in that file as children of the file node.
+
+<P><IMG SRC="fig3.gif" HEIGHT=287 WIDTH=227>
+
+<P>Click on any method, variable, or class name to see its definition.
+<H3>
+Using Etags</H3>
+To use the <TT>etags</TT> facility, you must first construct a TAGS file
+that indexes every symbol in your source code. The JDE package contains
+two shell scripts that you can use to tag your source code, one for <TT>csh</TT>
+shells and the other for <TT>bash</TT>. The <TT>bash</TT> version is called
+<TT>jtags</TT>; the csh version, <TT>jtags.csh</TT>.
+<H4>
+Tagging Java Source Code</H4>
+To tag your source code, first copy the appropriate shell script to a directory
+in your Emacs path. Then start a shell (<TT>M-x shell</TT>). Change to
+the top-level directory containing your source code and then enter <TT>jtags</TT>.
+The <TT>jtags</TT> script tags every <TT>.java</TT> file in the current
+directory and in all descendants of the current directory, storing the
+result in a file called <TT>TAGS</TT> in the top-level directory.
+<H4>
+Finding the Definition of a Symbol</H4>
+To find the definition of a symbol, put your cursor anywhere in the symbol
+and enter <TT>M-x .</TT>. Emacs responds by locating and opening (if necessary)
+the file containing the definition and positioning the point at the definition.
+(The first time you type <TT>M-x .</TT>, Emacs prompts you to load the
+<TT>TAGS</TT> file.)
+<H2>
+<A NAME="Customizingjde_mode"></A>Customizing jde-mode</H2>
+The JDE defines a major mode, named jde-mode, for editing Java source files.
+This mode derives from the standard Emacs Java source editing mode java-mode.
+In particular, it inherits all the functions and customization variables
+defined by java-mode and adds its own customization variables. When you
+load a Java source file, Emacs runs a JDE mode initialization function
+called jde-mode. The jde-mode function in turn calls the Java mode intialization
+function, java-mode. The last thing that jde-mode does before returning
+is to call a JDE mode function, if it exists.. You can customize the JDE
+by defining a JDE mode hook function in your .emacs file. The following
+is an example of how to do this:
+<BLOCKQUOTE><TT>(defun my-jde-mode-hook ()</TT>
+<BR><TT>(message "my-jde-mode-hook function executed"))</TT>
+<BR><TT>(add-hook 'jde-mode-hooks 'my-jde-mode-hook)</TT></BLOCKQUOTE>
+The preceding example defines a JDE mode hook function named my-jde-mode-hook
+and adds it to the list of JDE mode hook functions, using the Emacs Lisp
+function add-hook. Now, whenever you open a Java source file, jde-mode
+invokes the function my-jde-mode-hook. Of course, the hook function defined
+in this example is trivial. A real-world example might do something more
+useful, such as setting a custom indentation style.
+</BODY>
+</HTML>

fig1.gif

Removed
Old image

fig2.gif

Removed
Old image

fig3.gif

Removed
Old image
 ;; Free Software Foundation, Inc., 59 Temple Place - Suite 330,
 ;; Boston, MA 02111-1307, USA.
 
+;;;###autoload
 (defconst jde-version "2.01"
   "JDE version number.")
 
 (defvar jde-xemacsp (string-match "XEmacs" emacs-version)
   "Non-nil if we are running in the XEmacs environment.")
 
-(defvar jde-xemacs20p (and jde-xemacsp (= emacs-major-version 20)))
+(defvar jde-xemacs20p (and jde-xemacsp (>= emacs-major-version 20)))
 
 (require 'easymenu)
 (require 'cl)
   "Menu for JDE.")
 
 ;; Define JDE menu for FSF Emacs.
-(if (not jde-xemacsp)
+(if (or (not jde-xemacsp) (featurep 'infodock))
     (easy-menu-do-define 'jde-menu 
 			 jde-mode-map
 			 "Menu for JDE."
 (defun jde-insert-menu-in-XEmacs-menubar ()
   "Insert JDE menu in the XEmacs menu bar."
   (if (and 
-       (not (memq 'infodoc c-emacs-features))
+       (not (featurep 'infodock))
+       (not (memq 'infodock c-emacs-features))
        (boundp 'current-menubar)
        current-menubar)
       (if (fboundp 'add-submenu)
       (define-key-after (cdr (cdr files)) [jde-new]
 	(cons menu-name menu)
 	'open-file))
-  (add-submenu '("File") jde-new-buffer-menu "Insert File..."))
+  (unless (featurep 'infodock)
+    (add-submenu '("File") jde-new-buffer-menu "Insert File...")))
 
 
 
 (defun jde-find-jde-directory ()
   "Return the path of the JDE directory or nil if the
 directory cannot be found."
-  (find-if 
-   (lambda (dir) 
-     (file-exists-p 
-      (expand-file-name "jde.el" dir)))
-   load-path))
+  (if jde-xemacsp
+      (locate-data-directory "jde")
+    (find-if 
+     (lambda (dir) 
+       (file-exists-p 
+	(expand-file-name "jde.el" dir)))
+     load-path)))
 
 ;;;###autoload
 (defun jde-show-help ()
   (interactive)
   (let* ((jde-dir (jde-find-jde-directory))
 	 (jde-help
-	  (if jde-dir
-	      (expand-file-name "doc/jde.htm" jde-dir))))
+	  (if (and (not jde-xemacsp) jde-dir)
+	      (expand-file-name "doc/jde.htm" jde-dir)
+	    (expand-file-name "jde.htm" jde-dir))))
     (if jde-help
 	(browse-url (concat "file:" jde-help)  browse-url-new-window-p)
       (signal 'error '("Cannot find JDE help file.")))))

jde.htm

-<HTML>
-<HEAD>
-   <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1">
-   <META NAME="GENERATOR" CONTENT="Mozilla/4.04 [en] (Win95; I) [Netscape]">
-   <TITLE>JDE User's Guide</TITLE>
-</HEAD>
-<BODY BGCOLOR="#FFFFFF">
-
-<H1>
-JDE User's Guide</H1>
-
-<H2>
-Contents</H2>
-<A HREF="#Introduction">Introduction</A>
-
-<P><A HREF="#ConfiguringJDE">Configuring the JDE</A>
-
-<P><A HREF="#Generating Code Automatically">Generating Code Automatically</A>
-
-<P><A HREF="#EditingJavaSourceFiles">Editing Java Source Files</A>
-
-<P><A HREF="#CompilingJavaPrograms">Compiling Java Programs</A>
-
-<P><A HREF="#BuildingJavaApplications">Building Java Applications</A>
-
-<P><A HREF="#RunningJavaApps">Running Java Applications</A>
-
-<P><A HREF="#RunningApplets">Running Applets</A>
-
-<P><A HREF="#DebuggingApps">Debugging Applications</A>
-
-<P><A HREF="#SettingGlobalClasspath">Setting a Global Classpath</A>
-
-<P><A HREF="#UsingProjectFiles">Using Project Files</A>
-
-<P><A HREF="#BrowsingJDKDoc">Browsing JDK Documentation</A>
-
-<P><A HREF="#BrowsingSourceCode">Browsing Source Code</A>
-
-<P><A HREF="#Customizingjde_mode">Customizing jde-mode</A>
-<H2>
-<A NAME="Introduction"></A>Introduction</H2>
-Welcome to the <I>JDE User's Guide</I>. This guide explains how to use
-the JDE to develop Java applications and applets. The guide assumes that
-you are familiar with Emacs and JavaSoft's Java development tools.
-<H3>
-About the JDE</H3>
-The Java Development Environment (JDE)&nbsp; is an Emacs Lisp package that
-interfaces Emacs to third-party&nbsp; Java application development tools,
-such as those provided by JavaSoft's Java Development Kit (JDK). The result
-is an integrated development environment (IDE) comparable in power to many
-commercial Java IDEs. Features include:
-<UL>
-<LI>
-source code editing with syntax highlighting and auto indendation</LI>
-
-<LI>
-compilation with automatic jump from error messages to responsible line
-in the source code.</LI>
-
-<LI>
-run Java application in an interactive (comint) Emacs buffer</LI>
-
-<LI>
-integrated debugging with interactive debug command buffer and automatic
-display of current source file/line when stepping through code</LI>
-
-<LI>
-browse JDK doc, using the browser of your choice</LI>
-
-<LI>
-browse your source code, using the Emacs etags facility or a tree-structured
-speedbar.</LI>
-
-<LI>
-supports latest version of JavaSoft's Java Development Kit</LI>
-
-<LI>
-runs on any platform supported by Emacs and Sun's Java SDK (e.g., Win95/NT
-and Solaris)</LI>
-
-<LI>
-easily and infinitely customizable</LI>
-
-<LI>
-works with FSF Emacs and XEmacs</LI>
-</UL>
-
-<H3>
-JDE Requirements</H3>
-The JDE requires the following software:
-<UL>
-<LI>
-<A HREF="http://www.gnu.org/">FSF Emacs</A> or <A HREF="http://www.xemacs.org/">XEmacs</A>
-on Unix platforms; the 19.34.6 version of <A HREF="http://www.cs.washington.edu/homes/voelker/ntemacs.html">NT/Emacs</A>
-on Windows platforms, for general source file editing and tool integration
-functions.</LI>
-
-<LI>
-<A HREF="ftp://ftp.python.org/pub/emacs/cc-mode.tar.gz">cc-mode</A>, version
-5.18 (or higher), an Emacs Lisp package for editing Java source files.
-Versions earlier than 5.18 contain a bug that causes the JDE pulldown menu
-to appear twice.</LI>
-
-<LI>
-<A HREF="http://www.dina.kvl.dk/~abraham/custom/">custom</A>, version 1.9960
-(or higher), an Emacs Lisp package for customizing cc-mode (and eventually
-JDE) settings,&nbsp; if you have a version of Emacs older than Emacs 20.1
-or XEmacs 20.3. Note that Emacs 20.1 and XEmacs 20.3 already include the
-latest version of custom. The separately bundled version of custom (i.e.,
-custom 1.9961) is intended only for backward compatibility with older versions
-of Emacs and XEmacs. It does <I>not</I> work with the latest versions.</LI>
-
-<LI>
-<A HREF="http://www.csd.uu.se/~andersl/emacs.shtml">andersl-java-font-lock.el</A>,
-an Emacs Lisp package for syntax coloring Java source (not required for
-Emacs/XEmacs 20.0 or greater).</LI>
-
-<LI>
-<A HREF="http://www.javasoft.com/products/jdk/1.1/index.html">Java Development
-Kit (JDK)</A> or compatible set of Java development tools (compiler, virtual
-machine, debugger, class libraries, etc.)</LI>
-
-<LI>
-Web browser (e.g., Netscape or Internet Explorer) for viewing documentation.</LI>
-
-<LI>
-latest version of <A HREF="http://wombat.doc.ic.ac.uk/emacs/browse-url.el">browse-url</A>,
-an Emacs Lisp package for invoking an HTML browser on a URL. Note that
-the version of browse-url.el distributed with NT/Emacs 19.34.6 is an out-of-date
-version that does not provide functionality required by JDE. So, if you
-are using NT/Emacs, you must download and install the latest version of
-browse-url.el. Further, if you are using NT/Emacs, to benefit fully from
-browse-url, you must install <A HREF="http://www.cs.washington.edu/homes/voelker/ntemacs.html#browse_url">shellex</A>
-support for browse-url.</LI>
-
-<BR><A HREF="http://www.cygnus.com/misc/gnu-win32/">bash</A> or other Unix-style
-shell highly recommended for Windows95/NT environments.</UL>
-
-<H3>
-JDE Components</H3>
-The JDE distribution includes the following files:
-<UL>
-<LI>
-<A HREF="../jde.el">jde.el</A>. Defines jde-mode, a major Emacs mode for
-developing Java code.</LI>
-
-<LI>
-<A HREF="../jde-run.el">jde-run.el</A>. Runs Java applications and applets</LI>
-
-<LI>
-<A HREF="../jde-db.el">jde-db.el</A>. interfaces Emacs to the jdb debugger.</LI>
-
-<LI>
-<A HREF="../jde-gen.el">jde-gen.el</A>. contains code generation templates.</LI>
-
-<LI>
-<A HREF="../speedbar.el">speedbar.el</A>. A JDE version of a tree-structured
-source code browser developed by Eric Ludlam.</LI>
-
-<LI>
-<A HREF="../speedbar.el">imenu.el</A>. Indexes symbols in Java source code.
-Required by the speedbar. (Note: the JDE distribution includes imenu.el
-because recent distributions of XEmacs do not.)</LI>
-
-<LI>
-<A HREF="../jtags">jtags</A> is a bash shell script that tags Java source
-hierarchies.</LI>
-
-<LI>
-<A HREF="../jtags.csh">jtags</A> is a c shell script that tags Java source
-heierarchies.</LI>
-</UL>
-
-<H3>
-Latest Version</H3>
-See the <A HREF="http://sunsite.auc.dk/jde/">Emacs JDE Home Page</A> for
-instructions on downloading and installing the most recent version of the
-JDE>
-<H3>
-Contacting the Author</H3>
-Please send bug reports and enhancement suggestions to Paul Kinnucan at
-<A HREF="mailto:paulk@mathworks.com">paulk@mathworks.com</A>.
-<H2>
-<A NAME="ConfiguringJDE"></A>Configuring the JDE</H2>
-The JDE is highly customizable. You can specify everything from what compiler
-the JDE uses to compile Java source files to what color it uses to color
-comments in a source file. You configure the JDE by setting the values
-of configuration variables. Some of these variables are defined by the
-JDE itself; some are defined by the packages on which the JDE relies, such
-as cc-mode, custom, speedbar, and so on. The names of configuration variables
-defined by the JDE begin with jde-. The variables defined by other packages
-have other prefixes.
-
-<P>You can use any of the following methods to set configuration variables
-<BR>&nbsp;
-<UL>
-<LI>
-insert Lisp <TT>setq</TT> forms in your Emacs initialization (<TT>.emacs</TT>)
-file</LI>
-
-<BR>For example, the following form tells the JDE not to turn on font-locking
-(syntax coloring).
-<BR><TT>(setq jde-use-font-lock nil)</TT>
-<BR>&nbsp;
-<LI>
-interactively, using keyboard commands</LI>
-
-<BR>The JDE provides commands for setting some configuration variables.
-For example, the command
-<BR><TT>M-x set-compile-options</TT>
-<BR>sets the variable <TT>jde-compile-option-command-line-args</TT> to
-a string of compiler command-line arguments that you specify. The JDE passes
-this string to the compiler whenever you invoke the JDE compile command.
-<BR>&nbsp;
-<LI>
-interactively, using the Emacs customization feature</LI>
-</UL>
-
-<H3>
-About the Emacs Customization Feature</H3>
-The Emacs customization feature is a new feature that allows you to locate
-and set configuration variables by interacting with text "widgets" (buttons,
-text fields, checkboxes, menus) displayed in a customization buffer. (You
-can think of such a buffer as the Emacs equivalent of a dialog box). The
-customization feature arranges all Emacs customization variables, including
-those provide by Emacs extension packages, such as cc-mode and the JDE,
-in a tree-structured hierarchy of customization groups. You can navigate
-up and down the customization tree by clicking navigation buttons in customization
-buffers. To display the root customization buffer (the Emacs group), type
-<TT>M-x customize</TT>. The root buffer displays the next layer of customization
-groups in the hierarchy. You can navigate to these groups by clicking their
-names, and so on, until you reach the group containing the variable(s)
-you want to set.
-
-<P>The buffer for each group lists the variables and subgroups that the
-group contains. For each variable, the buffer lists the variable's current
-value and documentation. You can change the current value by interacting
-with text widgets associated with the variable.&nbsp; Each variable has
-an associated State button that displays a menu of options for setting
-the variable's value. The options include applying a change permanently
-or only for the duration of the current session or restoring the variable's
-default value. If you choose to apply a change permanently, Emacs saves
-the new value in a customization file. By default, the customization file
-is your .emacs file.You can specify another file by setting an option in
-the Custom Group. For more information, see <A HREF="http://www.dina.kvl.dk/~abraham/custom/">custom.</A>
-<BR>&nbsp;
-<H3>
-&nbsp;JDE Customization Groups</H3>
-The JDE defines a top-level customization group, the JDE Group, for JDE
-configuration variables. The JDE Group itself contains the following subgroups
-<H4>
-Compile Option Group</H4>
-Specifies compile options corresponding to the command-line arguments (e.g.,
--d) accepted by the JDK compiler, javac. When you execute the JDE compile
-command, the JDE uses the settings of this group to construct a list of
-command-line arguments that it passes to the Java compiler that the JDE
-uses to compile Java source programs. The compiler is itself an option
-that you can specify (see the Project Option Group). You can specify command-line
-arguments directly by setting the value of the <TT>jde-compile-option-command-line-args</TT>
-variable. You can display the customization buffer for the Compile Option
-Group by selecting <B>Options->Compile</B> from the <B>JDE</B> menu.
-<H4>
-Run Option Group</H4>
-Specifies run-time options corresponding to the command-line arguments
-(for example, -classpath) accepted by the JDK virtual machine, java. When
-you execute the JDE Run command,&nbsp; the JDE uses the settings of this
-group to construct a list of command-line arguments that it passes to the
-Java interpreter used by the JDE to run applications. This group also contains
-options for specifying non-java command-line arguments (in case you want
-to use a vm that accepts a different set of arguments than java does) and
-for specifying arguments to be passed to the application (as opposed to
-the virtual machine interpreting the application.) You can display the
-customization buffer for the Run Option Group by selecting <B>Options->Run</B>
-from the <B>JDE</B> menu.
-<H4>
-Debug Option Group</H4>
-Specifies run-time options corresponding to the command-line arguments
-(for example, -classpath) accepted by the JDK debugger, jdb. jdb accepts
-the same command-line arguments as java. However, the JDE maintains two
-parallel sets of configuration variables for these programs in case you
-want to use a different set of options for running a program in debug mode
-then you use for running it normally. When you execute the JDE Debug command,&nbsp;
-the JDE uses the settings of this group to construct a list of command-line
-arguments that it passes to the Java debugger used by the JDE to run applications
-in debug mode. You can display the customization buffer for the Debug Option
-Group by selecting <B>Options->Debug</B> from the <B>JDE</B> menu.
-<H4>
-Autocode Group</H4>
-Specifies templates used to generate code automatically.
-<H4>
-Project Options Group</H4>
-Specify all other JDE options. You can display the customization buffer
-for the Debug Option Group by selecting <B>Options->Debug</B> from the
-<B>JDE</B> menu.
-<H2>
-<A NAME="Generating Code Automatically"></A>Generating Code Automatically</H2>
-The JDE provides a set of commands that generate skeleton Java code for
-you. These commands fall into two categories:
-<UL>
-<LI>
-commands that create source buffers</LI>
-
-<LI>
-commands that create code at the current point in a buffer</LI>
-</UL>
-
-<H3>
-Buffer Creation Commands</H3>
-These commands prompt you to enter the path to a new Java source file.
-They then create a buffer for the new file and insert a template for a
-class of the same name as the newly created file. In particular, the command
-<UL>
-<LI>
-<B>Files->JDE New->Class</B> creates a buffer containing a generic Java
-public class.</LI>
-
-<LI>
-<B>Files->JDE New->Console</B> creates a buffer containing&nbsp; the main
-class of a Java console application.</LI>
-
-<LI>
-<B>Files->JDE NEw->Custom</B> prompts you to create any of the above buffers
-or a custom (user-defined) buffer.</LI>
-</UL>
-You can create an empty Java class buffer&nbsp; by selecting <B>Files->Open</B>
-(<TT>C-x f</TT>) and entering the path for a new file whose root name is
-the same as the class you want to create and whose extension is <TT>.java.</TT>
-
-<P>The following JDE customization variables control creation of autocoded
-Java source buffers:
-<BR>&nbsp;
-<TABLE BORDER WIDTH="100%" >
-<TR>
-<TH>Variable</TH>
-
-<TH>Group</TH>
-
-<TH>Variable</TH>
-</TR>
-
-<TR>
-<TD><TT>jde-gen-class-buffer-template</TT></TD>
-
-<TD>Autocode</TD>
-
-<TD>Defines a template for a generic public class buffer.</TD>
-</TR>
-
-<TR>
-<TD><TT>jde-gen-console-buffer-template</TT></TD>
-
-<TD>Autocode</TD>
-
-<TD>Defines a template for a console application buffer.</TD>
-</TR>
-
-<TR>
-<TD><TT>jde-gen-buffer-templates</TT></TD>
-
-<TD>Autocode</TD>
-
-<TD>Specifies templates available to create Java buffers.</TD>
-</TR>
-</TABLE>
-&nbsp;
-<BR>See&nbsp; <A HREF="#CustomizingAutocode">Customizing Autocode Templates</A>
-for information on how to customize the class autocode templates.
-<H3>
-Commands that Generate Code at Point</H3>
-The following commands generate code at the current point in the buffer:
-<UL>
-<LI>
-<B>JDE->Generate->Get/Set Pair</B> generates an instance variable and a
-get and set method for that variable</LI>
-
-<LI>
-<B>JDE->Generate->Listener->Action</B> generates and registers an action
-listener for a specified component.</LI>
-
-<LI>
-<B>JDE->Generate->Listener->Window</B> generates and registers a window
-listener for a specified window.</LI>
-
-<LI>
-<B>JDE->Generate->Listener->Mouse</B> generates and registers a mouse listener
-for a specified component.</LI>
-
-<LI>
-<B>JDE->Generate->Custom</B> allows you to select any of the above templates
-or a custom (user-defined) template.</LI>
-</UL>
-&nbsp;The following variables control generation of code at point:
-<BR>&nbsp;
-<TABLE BORDER WIDTH="100%" >
-<TR>
-<TH>Variable</TH>
-
-<TH>Group</TH>
-
-<TH>Variable</TH>
-</TR>
-
-<TR>
-<TD><TT>jde-gen-get-set-var-template</TT></TD>
-
-<TD>Autocode</TD>
-
-<TD>Defines a get/set method pair template.</TD>
-</TR>
-
-<TR>
-<TD><TT>jde-gen-listener-action-template</TT></TD>
-
-<TD>Autocode</TD>
-
-<TD>Defines an action listener template.</TD>
-</TR>
-
-<TR>
-<TD><TT>jde-gen-listener-window-template</TT></TD>
-
-<TD>Autocode</TD>
-
-<TD>Defines a window listener template.</TD>
-</TR>
-
-<TR>
-<TD><TT>jde-gen-listener-mouse-template</TT></TD>
-
-<TD>Autocode</TD>
-
-<TD>Defines a mouse listener template.</TD>
-</TR>
-
-<TR>
-<TD><TT>jde-gen-code-templates</TT></TD>
-
-<TD>Autocode</TD>
-
-<TD>Specifies available code templates.</TD>
-</TR>
-</TABLE>
-&nbsp;
-<BR>See&nbsp; <A HREF="#CustomizingAutocode">Customizing Built-In Templates</A>
-for information on how to customize&nbsp; templates.
-<H3>
-<A NAME="CustomizingAutocode"></A>Customizing Built-In Templates</H3>
-You can customize JDE autocode templates, using the Emacs customization
-feature.
-
-<P>To customize an autocode template:
-<OL>
-<LI>
-Select JDE->Options->Autocode</LI>
-
-
-<P>The JDE displays a customization buffer containing the autocode templates.
-<BR>&nbsp;
-<LI>
-Edit the template to suit your needs.</LI>
-
-
-<P>The JDE uses the template format defined by <TT>tempo.el</TT> to represent
-class templates. Each template consists of a list of strings, symbols,
-and functions, each of which represents content to be inserted successively
-into the buffer at the current point. The strings represent fixed content.
-The symbols and functions represent variable content. See the docstring
-for the function <TT>tempo-define-template</TT> for more information, including
-the meaning of special symbols such as <TT>'n></TT>.
-<BR>&nbsp;
-<LI>
-Select the state button associated with the template.</LI>
-
-
-<P>A menu pops up with a list of options for saving your changes.
-<BR>&nbsp;
-<LI>
-Save your changes.</LI>
-
-
-<P>Select <B>Save for Future Sessions</B> if you want your changes to apply
-to all projects. If you want your changes to apply only to the current
-projects, select <B>Set for Current Session</B>. Then select <B>JDE->Options->Save
-Project</B> to save your changes in the current project's project file.</OL>
-
-<H3>
-Creating Custom Templates</H3>
-The JDE considers any command (interactive function) that inserts code
-into a buffer at point to be a template. The JDE uses the&nbsp; Emacs tempo
-library to create built-in templates. You can use tempo to create your
-own, add-on templates (see the&nbsp;&nbsp; <TT>tempo-define-template </TT>for
-more information) or&nbsp; create templates&nbsp; from scratch. In either
-case, once you have created a template, you can add it to the JDE's lists
-of available code and/or buffer templates,&nbsp; using the JDE's jde-gen-code-templates
-and/or jde-gen-buffer-templates variables, respectively. Adding a template
-to these lists enables you to invoke the templates from the JDE menus.
-When adding a template, you need to specify a unique title for the template.
-These titles enable you to specify the templates when invoking them, using
-the JDE's custom code template commands (<B>Files->JDE New->Custom</B>
-and <B>JDE->Generate->Custom</B>). You can use auto completion to enter
-a template title when invoking a custom code generation command. Note that
-you can specify different sets of templates for different projects, by
-setting and saving the template list variables in project files.
-<H2>
-<A NAME="EditingJavaSourceFiles"></A>Editing Java Source Files</H2>
-To edit an existing Java source file, load it into an Emacs buffer by executing
-<TT>C-x f</TT>. Loading a Java source file into a buffer causes the buffer
-to enter into <TT>java-mode</TT>, a variant of the standard Emacs <TT>cc-mode</TT>
-for editing source files written in C and related languages. Java mode
-offers all the specialized source file editing commands of <TT>cc-mode</TT>
-plus functions for compiling, running, and debugging Java source files.
-You can invoke the commands by selecting them from the <B>JDE</B> menu
-that <TT>java-mode</TT> displays on the Emacs menu bar or by typing the
-commands in the Emacs minibuffer (see the figure below).
-
-<P><IMG SRC="fig1.gif" HEIGHT=255 WIDTH=425>
-<H2>
-<A NAME="CompilingJavaPrograms"></A>Compiling Java Programs</H2>
-The <TT>jde-compile</TT> command (<B>JDE->Compile, </B><TT>C-c C-v C-c</TT>)
-compiles the Java source file in the current buffer, using <TT>javac</TT>,
-the Java compiler provided by the JDK, or another compiler that you specify
-(see <A HREF="#SpecifyingCompiler">Specifying a Compiler</A>). The compile
-command displays the output of the compiler in a separate compilation buffer.
-If a compilation buffer does not exist, the compile command creates the
-buffer; otherwise, it reuses the existing compile output buffer. The compilation
-buffer operates in <TT>compilation-mode</TT>, a standard Emacs buffer mode.
-This mode greatly simplify locating compilation errors in the Java source
-code. For example, to find the line that cause a compilation error, simply
-click the error message in the compilation buffer.
-<H3>
-Compilation Options</H3>
-The JDE allows you to specify compilation options by setting compilation
-variables.You can use the Emacs customization feature to set compilation
-variables interactively. To use the customization feature, select <B>Options->Compile</B>
-from the <B>JDE</B> menu. (See <A HREF="#ConfiguringJDE">Configuring the
-JDE</A> for more information on using the customization feature). In some
-cases, the JDE also provides functions for setting the buffer-local values
-of the compilation variables. To save the compilation settings in the project
-file (see <A HREF="#UsingProjectFiles">Using Project Files</A>) for the
-current source buffer, select <B>Options->Update Project</B> from the <B>JDE</B>
-menu.
-
-<P>The following table lists the JDE compilation variables and the functions
-used to set them.
-<BR>&nbsp;
-<TABLE BORDER=2 CELLPADDING=5 WIDTH="100%" >
-<TR>
-<TH>
-<CENTER><B>Name&nbsp;</B></CENTER>
-</TH>
-
-<TH>
-<CENTER><B>Group</B></CENTER>
-</TH>
-
-<TH>
-<CENTER><B>Usage&nbsp;</B>&nbsp;</CENTER>
-</TH>
-</TR>
-
-<TR>
-<TD VALIGN=TOP><TT>jde-compiler</TT></TD>
-
-<TD VALIGN=TOP>Project&nbsp;</TD>
-
-<TD VALIGN=TOP>Specifies the compiler (javac, by default)&nbsp; to use
-to compile the code in the current source buffer. The command <TT>jde-set-compiler</TT>
-sets the buffer-local value of this option.&nbsp;</TD>
-</TR>
-
-<TR>
-<TD VALIGN=TOP><TT>jde-compile-option-command-line-</TT>&nbsp;
-<BR><TT>args</TT>&nbsp;</TD>
-
-<TD VALIGN=TOP>Compile</TD>