When the Java programming language was introduced more than a year ago, the Java
Developer's Kit was the only development tool that programmers could use. The Kit
enables you to write, compile, and debug Java programs, but it is primitive compared
to the tools available for programmers using Visual Basic, Borland Delphi, and other
With many languages, programs can be developed with a suite of tools called an
integrated development environment (also known as an IDE). An integrated development
environment combines several development tools into a single package. This package
usually contains a program text editor, a compiler, a debugger, and other tools.
These tools complement each other as you go through the process of creating programs.
Most professional IDEs use drag-and-drop, multiple windows, and other graphical features.
If they work well, designing a program should be faster and more efficient than using
a more rudimentary tool such as the Java Developer's Kit. Programs also ought to
be easier to debug.
Many IDEs use rapid application development, also known as RAD, in their approach
to programming. RAD is a strategy to speed up program development by using tools
such as an interface designer. Product advertisements that promise the capability
to "create Java programs without writing a line of code" are referring
to a RAD feature. Most Java programming environments to date use RAD tools primarily
in the design of a graphical user interface. Some of these IDEs connect interface
design directly to programming so that you can create a clickable button, for example,
and immediately write statements to handle the button.
More than 40 Java development environments have been released in beta or final
form. This appendix focuses on some of the more commonly used environments so that
you can decide whether they match your programming needs. You'll be introduced to
each IDE with details about the systems it can run on and things to consider when
evaluating the development product. This appendix also has capsule descriptions of
some other tools, such as Microsoft Visual J++.
The Gamelan Web directory of Java resources maintains a page with links to IDE
Web sites and related information. This page is available by choosing Programming
in Java | Development Tools | IDEs from the main Gamelan page at the following address:
The following development environments are described in this appendix:
Rogue Wave JFactory
SunSoft Java WorkShop
Pro-C WinGEN for Java
As you decide whether to choose an IDE and which one you might choose, there are
some questions that are helpful to ask about what you need when programming. Issues
related to the Java language can make a difference in your choice. Ask yourself each
of these questions:
Is graphical interface design important in your programs?
How important is it for your programs to run on more than one type of computer
system, instead of being specific to a Microsoft Windows machine, an Apple Macintosh,
or other system?
Have you used IDE tools before?
Will you be using other programming languages in addition to Java?
Thanks to Microsoft Windows and Apple Macintosh machines, windowing systems are
the way most users want to operate their computers. Users want their software to
use the mouse and offer common windowing features, such as resizable windows. These
expectations make user interface design important to consider when you're developing
a program. If your software uses a command-line environment in the tradition of the
Java Developer's Kit or MS-DOS, your program will be less attractive to people who
In the same vein, interface design is important to consider when selecting an
IDE. The available Java IDEs take different approaches to interface design and the
other features that should be available as you design an interface. Some tools focus
almost entirely on interface development, such as Rogue Wave's JFactory. Many of
these interface development tools can automatically create Java code that handles
user events. Visual Basic programmers will be familiar with this feature, because
that language's IDE enables quick interface design and programming.
Most of the interface builders function similarly to drawing programs. User interface
elements are arranged in a palette and can be dropped directly onto a workspace.
Most of the components come from the Java Abstract Windowing Toolkit, or AWT. Java
WorkShop and other IDEs add a layer between the AWT and your programs that is supposed
to make windowing and interface programming easier. For some programmers, this might
not be an attractive feature, because they would prefer to do the same kind of AWT
programming that was described in this guide. Other programmers might like to use
these new interface features and avoid AWT programming.
Writing Fully Portable
A feature to look for as you evaluate the different IDEs is adherence to Java's
promise of platform independence. Some of the development tools are no different
than using the Java Developer's Kit--they produce programs that are fully usable
on all Java implementations. In fact, many of these IDEs, such as SourceCraft NetCraft,
work in conjunction with the JDK, running tools like javac behind the scenes.
Java WorkShop, Symantec Café, and other development tools come with their own
specialized versions of the JDK.
Almost all IDEs aim to help you to write portable, platform-independent programs.
A notable exception is Microsoft Visual J++, which offers features that are specific
to Microsoft Windows systems and cannot be handled by other platforms. A Java program
designed with Visual J++ can be developed to run on all types of computer systems
if it does not use any of the special Windows-specific features.
Many Java programmers believe that all development environments should produce
platform-independent programs because this capability is essential to the continuing
success of the language. This belief is the subject of contentious discussion on
the Internet and elsewhere. Although platform-independent programs are an important
part of Java, most IDEs are not completely independent themselves, even when written
using Java. These development tools are available only for specific platforms, primarily
because they use native code, which consists of parts of Java programs that are written
using other languages such as C++ or C.
As you look over the sales pitches for each IDE, one thing that doesn't get enough
attention is that many of these tools require a lot of skill and experience to use
successfully. It can be difficult for an IDE to improve your programming if you can't
figure out how the IDE works.
IDEs are often the most complicated software you will use. They can include multiple-document
windows, numerous configuration options, and other sophisticated features. Novice
programmers can become confused with many IDEs because of the complexity, especially
if they are still learning how to use a new programming language. For this reason,
the IDE you choose should be suited to your experience level as a programmer and
as an IDE user.
Several Java IDEs are highly suitable for novices. Perhaps the best example of
an easy-to-understand interface is SunSoft Java WorkShop, which uses a browser interface
that should be well-known to anyone who surfs the World Wide Web. The downside to
the easier-to-use IDEs is that they might require more work to get something done
than an IDE that has more functions at the programmer's fingertips.
Using an IDE for
More than One Language
If you are using more than one language as you program, another thing to consider
about an IDE is whether you can use it with multiple languages. The Borland 5.0 C++
IDE, MetroWerks CodeWarrior, and other tools can handle Java and other languages
or work identically to other IDEs from the company.
One advantage to using an IDE that works with multiple languages is that you don't
have to learn a different IDE when using a different language. (Of course, the IDE
isn't any easier to learn the first time around.) Another plus to using a multilanguage
tool is that you can write Java statements and non-Java native methods with the same
tool. The Borland 5.0 Java environment is an example of this type of IDE; it can
compile C and C++ code and Java statements.
Making Sense of IDEs
An IDE should make you a better programmer and make it easier or more enjoyable
for you to develop programs. As you evaluate each of the products described in the
following sections, you can determine which of the features of a specific IDE you
might need. Because so many development tools are available for Java, you should
be able to find one that suits your skills and personal preferences. Of course, you
can always use the Java Developer's Kit that you learned about during this guide and
enhance it by using custom interface builders, your preferred word processor, and
Caution: If you download trial copies
of several different IDEs, as was done for this appendix, you might run into difficulties
because of how each IDE configures your system. Many Java development tools use environment
variables such as CLASSPATH and JAVAHOME, and these variables could
be set up incorrectly if another IDE has already configured them. Before installing
a test version of an IDE, you should uninstall any other Java IDEs that are present
on your system.
Rogue Wave JFactory
Rogue Wave JFactory is an interface builder instead of an IDE, in contrast to
other IDEs that are available for Java programming. It delivers some programming
capabilities along with interface design features, enabling interface actions to
be handled within JFactory. It also can compile and test programs during development,
so it's similar enough to a full IDE to be worth consideration. Though you can use
JFactory with any editor and Java compiler, JFactory provides a word processor and
can use the JDK compiler. Figure B.1 provides a look at the JFactory environment.
Versions of JFactory are available for the following platforms:
Microsoft Windows 95 and Windows NT systems running a 486 or better with 16M
of memory, 25M of hard disk space, and the Java Developer's Kit.
SPARC Solaris 2.4 or 2.5 running UNIX with 25M of hard disk space, an applet
browser, JDK, and X11R5. You must have enough memory to run X11R5, the JDK compiler,
and an applet browser at the same time.
HP-UX 10.01 systems with 25M of hard disk space, an applet browser, JDK, and
X11R5. The memory requirements are the same as for Solaris systems.
IBM OS/2 Warp 3.0 systems with 25M of hard disk space, 4M of memory not used
by OS/2, a two-button mouse or pointing device, and JDK build os2-19960412.
JFactory, which is based on a multiplatform C++ programming tool from Rogue Wave,
has numerous features that help you to design applications rapidly. Because Rogue
Wave has a lot of experience with similar tools, JFactory is different from many
Java IDEs that are still in a beta stage of development or are new products. The
strength of JFactory is the visual, drag-and-drop editor for interface creation,
which is superior to most other visual development tools currently available for
the Java language.
As you develop an interface with JFactory, you can test it at any time. Another
useful feature is the way that custom components can be added to a program toolbar
along with AWT components such as text fields, text labels, and radio buttons. JFactory
automatically creates a lot of the Java statements that are needed to offer interface
components in a program. If you need to do some of your own programming to customize
the interface, you can do it in a way so that you can change the interface later
without overwriting the customized portions of your program.
With JFactory, you can use the mouse or the keyboard to place a component. You
can set up the height, width, and x and y coordinates of a component from a properties
dialog box. This capability makes it easier to align components correctly. When you
create a window, menu, or dialog box, you can save it in an object library for use
with other programs.
JFactory is not a full-fledged IDE, so it does not include its own compiler, debugger,
or other tools. However, the software's visual editor might make up for the loss
of some other IDE functionality. Unless the absence of sophisticated tools such as
a class browser and integrated debugger slows down your programming, JFactory could
be an excellent choice.
Pricing and Additional
JFactory retails for $195; a multiplatform package that includes the Microsoft
Windows, UNIX, and OS/2 versions is available for $390. For more details and the
opportunity to download a demo version or to purchase JFactory online, visit the
home page for JFactory at the following URL:
The e-mail address for comments and questions regarding JFactory is email@example.com.
Symantec Café, the first development environment other than the JDK that
became widely available for Java programming, is called an integrated development
and debugging environment (IDDE) by Symantec. (Although other IDEs are missing the
extra D in their acronyms, most of them contain debuggers as well.) Café is
a stand-alone product based on Symantec's C++ environment. Figure B.2 shows an example
of Café at work.
Symantec has released versions of Café for the Microsoft Windows 95, Windows
NT 3.5x, and Macintosh systems. Windows users must have at least an Intel 386 processor
and 8M memory, but a 486 or better and 16M memory are recommended. You need at least
a VGA monitor, but Symantec recommends that you use an SVGA monitor if one is available.
The software and all its sample files and Help files require 60M of disk space and
a CD-ROM drive. Macintosh owners need a Power Macintosh, 68030, or 68040 Macintosh
and 16M memory. The full installation of the software requires 30M of disk space.
Café incorporates the JDK into its release with a full implementation of
the Java class libraries and source code samples. You do not have to have the JDK
before installing Café. In fact, you should uninstall the JDK if you already
have it on your system before implementing Café to avoid configuration conflicts
between the two.
Café is more robust than some other IDEs, and it has been documented more
fully than some other IDEs in guides such as Learn Java in Café in 21
Days, available now from Sams.net Publishing. The main features of Café are
described in the following list:
Café offers an excellent text editor that uses color to highlight different
elements of a Java program.
To assist the design of a class hierarchy, Café has a class editor for navigating
through classes and editing class methods. It also has a hierarchy editor for viewing
and changing class relationships. You can see changes in your programs that would
involve the class hierarchy as the program is being written. You also can change
a program from within the class editor by selecting a function or method within a
class in order to display its source code in a window.
The AppExpress tool speeds up the process of creating the beginning framework
of a Java program. Other Express Agents--Café's term for wizards--make it easier
to do things within the IDE.
In the program editor, Java syntax is highlighted, which makes it easier to find
errors such as typos and other problems. The editor uses standard Windows cut, copy,
and paste commands.
You can design a graphical user interface for your Java programs in a visual,
drag-and-drop manner with Café Studio. It enables programmers to develop the
dialog boxes and other visual components visually, and it creates statements to handle
these components automatically. There also is a menu editor with an active window
that lets you test the menus you create.
With Café Studio, you can design a form and dictate exactly how it looks.
With the Abstract Windowing Toolkit, a graphical user interface might change depending
on the computer system the Java program is running on, similar to the way HTML pages
can be modified for presentation on the many different platforms that can access
the World Wide Web. Programmers can use Café Studio to choose one of these AWT
layout managers or to dictate the exact position and size of all interface elements.
Café offers the choice of using the JDK compiler or a Café compiler,
which has been optimized to work faster.
With the Café debugging tool, there are different ways to halt the execution
of code. These include a way to insert a one-time breakpoint that stops the running
of a program at a specific line. The debugger also enables you to control multi-threaded
programs. During debugging, you can use a watch view to see the value of variables.
Symantec Café is highly customizable; all toolbars and palettes can be resized
and placed where you want them.
More than four dozen sample Java programs are included with Windows versions
of Café, and more than 90 are included with the Macintosh version. Many of these
programs are duplicates of the sample applets Sun offers with the JDK or on its Web
site at http://java.sun.com.
Pricing and Additional
The most recent retail price for Café is $129.95 for Windows users. A comparable
price is being offered to Macintosh owners. You can purchase Café from Symantec's
Web site, as well as from retail and mail-order outlets.
Some folks might not have to buy Café at all! Customers who bought Symantec
C++ between December 1, 1995, and March 1, 1996, are entitled to a free upgrade to
The home page for Symantec Café is the following URL:
The customer service number for the company is (800) 441-7234, and its e-mail
address for Java-related comments and questions is firstname.lastname@example.org.
SunSoft Java WorkShop
SunSoft Java WorkShop, the development tool offered by the language's home team,
is an IDE written almost entirely in Java. Its development was used at Sun to help
improve the Java language by tackling a large-scale software project using Java,
but it also is a useful tool for Java programmers to consider. Figure B.3 shows an
example of Java WorkShop being used to develop a program.
Versions of Java WorkShop are available for the following systems: Microsoft Windows
95, Windows NT 3.5.1, SPARC Solaris (2.4 or later), and Intel x86 Solaris systems.
Microsoft Windows 95 and NT systems must be running a 90MHz Pentium or better with
16M of memory and 45M of hard disk space. Solaris systems must have 32M of memory,
45M of disk space, and an OSF/Motif 1.2.3-compliant windowing system. The recommended
display resolution to use with Java WorkShop is 800 by 600 pixels.
Java WorkShop comes with its own modified version of the JDK, so you cannot use
it in conjunction with an existing installation of the Kit. Like Café, Java
WorkShop requires that any existing JDK copies be uninstalled before you can install
and run WorkShop correctly.
Java WorkShop, one of the most approachable IDEs for a novice programmer, uses
a Web interface to offer a program text editor, class browser, debugger, project
management system, and Visual Java. That last tool provides a way to visually design
a graphical interface. WorkShop is fully detailed in Learn SunSoft Java
WorkShop in 21 Days, available now from Sams.net Publishing.
The most striking difference between Java WorkShop and other IDEs is its interface.
Java WorkShop looks more like a Web browser than a programming development environment,
because it is a Web browser. Java WorkShop's browser interface is easier to use for
programmers who are unfamiliar with more complex IDEs, but the browser interface
can be frustrating for developers who are comfortable with these tools. WorkShop
has a source browser for viewing variables, a class hierarchy, and public methods.
The browser creates HTML pages in the same format as HTML documentation generated
by the javadoc utility included with the JDK.
The WorkShop program text editor lacks some of the cut-and-paste functionality
of other, more established editors. It works with WorkShop's debugger so that compile
errors create links directly into the editor for fixing. The WorkShop debugger provides
breakpoints and other methods of debugging.
Visual Java, like Café Studio, provides a way to graphically design an interface.
Programmers can develop dialog boxes and other visual elements and automatically
create handlers to respond to events generated by these components.
The WorkShop environment is not customizable in the way Café is, but the
Web interface makes it easy to integrate other tools and programs into WorkShop.
Basically, the program is a group of Web pages with Java programs featured on them.
You can go to a different page from within Java WorkShop as easily as you visit a
URL in a Web browser. This structure makes it possible for a programmer to create
original Java development tools that can be linked to WorkShop pages, an unusual
feature. This arrangement is unorthodox in comparison to development environments
that are cohesive, unchangeable files. However, it is compatible with the approach
to the Java language in general--small, self-contained programs that can reach out
to other programs over the Internet or other means.
Pricing and Additional
SunSoft Java WorkShop currently sells over the World Wide Web for a retail price
of $84.99. The software can be downloaded for a free 30-day evaluation. For more
details, visit the following URL:
The customer service number to use for the company is (800) 786-7638 (SUN-SOFT)
in the United States or (512) 434-1511 elsewhere. The company's e-mail address for
comments and questions is email@example.com.
SourceCraft, the developer of the ObjectCraft development environment, is making
its Java IDE, NetCraft, available at no cost if you comply with the terms and conditions
for use. This makes NetCraft attractive because of the cost, but the IDE still must
be useful to you or you will pay in other ways due to lost efficiency. Figure B.4
provides a screen shot of the NetCraft environment.
Versions of NetCraft are available for Microsoft Windows 95 and Windows NT 3.5.1
systems running a 486 or better with 8M of memory. NetCraft comes bundled with the
current version of the JDK; SourceCraft also makes NetCraft available for download
without the JDK if you already have the JDK installed.
SourceCraft NetCraft does not offer as many features as other IDEs, but it is
a comparable replacement for the JDK. It creates Java programs that are usable across
Java implementations for all systems. NetCraft has an editor, class inspector, user
interface designer, and compiler.
You can use NetCraft for any type of Java applet or application. You can use the
Package Inspector, part of NetCraft's system for organizing projects, to browse class
methods. The Class Inspector can show you the position of a class in the hierarchy,
its methods, and its variables. You can view the source code of the method and how
it is used in a program when you are looking at a method with this tool.
Like Café and Java WorkShop, NetCraft includes a way to visually create a
graphical user interface. The UI Builder generates Java code that uses the Abstract
Windowing Toolkit, so the program does not rely on any new classes introduced with
the development environment. When you create an interface component, NetCraft generates
Java statements for that component, complete with a TODO comment line where
the action event handling statements for that component are placed. The approach
is simpler than some of the alternatives, so a programmer familiar with the AWT should
be comfortable with it.
NetCraft's program editor uses cut-and-paste commands and is similar to other
small word processors. Though the components in the currently available release have
the odd habit of moving around a little after they are clicked, a nice feature of
the builder is the capability to set a component's height and width coordinates by
entering numbers into text fields. This feature enables you to easily align wandering
components with each other.
The NetCraft environment is simpler to use than other IDEs, but this simplicity
might be a problem when you need to create programs that have numerous windows and
interactive components. Some of the tools that can make complex software more manageable
to design are not available in NetCraft. NetCraft appears to be a good substitute
for JDK users who want to use a graphical interface as they write simple programs
and applets. Because it is free, this IDE can be a good place for novices to start
when they're deciding which IDE to use.
Pricing and Additional
For more details and the opportunity to download NetCraft at no cost, visit the
home page for NetCraft at the following URL:
The customer service number for the company is (617) 221-5665; the company's e-mail
address for comments and questions is firstname.lastname@example.org.
Pro-C WinGEN for
Pro-C WinGEN for Java is an IDE designed for people who do not write programs.
The focus is on automatically generating code so that HTML designers and other programming
novices can develop Java programs. You can develop the graphical interface of an
applet or application using drag-and-drop and introduce elements such as animation
without writing a single Java statement. The IDE calls the JDK from within WinGEN
to run and compile programs. Figure B.5 shows the WinGEN environment.
Versions of WinGEN are available for Microsoft Windows 95 and Windows NT 3.5.1
systems running a 486 or better with 8M of memory and 10M of hard disk space. To
unpack WinGEN Lite, the evaluation edition of the software, you must have a program
that can unpack ZIP files into long file names. (For users of Windows systems, the
Windows 95 operating system introduced file names longer than eight characters and
a three-character extension.) If you use a ZIP unpack program that does not support
long file names, files will not be named correctly, and the setup will fail. WinGEN
includes the current version of the JDK, which must be installed before WinGEN is
installed so that the IDE will function.
WinGEN supports the JDK rather than replacing it and can run the Kit's compiler
and interpreter from within the IDE. Because of WinGEN's focus on beginners, WinGEN
emphasizes a point-and-click approach to graphical user interface creation. You can
create many user events through WinGEN without any programming.
The arrangement of WinGEN's user interface should be familiar to programmers who
have used other GUI design tools, especially for those who have used Visual Basic.
The current WinGEN version can be difficult to use when aligning components, but
laying out text fields, labels, and other things is easier than it can be with other
The IDE takes a resource-centric view of development. What this means is that
you start with the menus and dialog boxes and then create programming functions rather
than using programming to create those components. One thing that WinGEN does not
offer is the capability to preview a program's interface before any Java statements
have been generated.
A system called CodeHooks enables you to add Java statements that handle circumstances
WinGEN can't handle. These hooks, which accomplish specific tasks like a special
event handler, are separated from the statements that WinGEN automatically generates.
This separation of statements enables programmers to change the GUI and use CodeHooks
without reentering anything.
WinGEN can be useful for the programming of simple applets and applications or
as a tool for Java novices. Though it lacks a debugger, source browser, and other
IDE features, later versions of the software might implement some of these tools.
Pricing and Additional
You can purchase WinGEN online for $79.95. For more details, the opportunity to
download WinGEN Lite at no cost, or to purchase the full version online, visit the
home page for WinGEN at the following URL:
The phone number at Pro-C for inquiries related to the software is (813) 227-7762;
the company's e-mail address for comments and questions regarding WinGEN is email@example.com.
The following products for Java development are profiled to provide a more complete
picture of the programming tools that are available.
Borland C++ 5.0
with Java Enhancements
Borland C++ 5.0 with Java Enhancements is a C++ development environment that has
been extended to include Java programming tools. The advantages of this approach
are multilanguage development within the same environment for native method use,
the capability to program in three languages (C, C++, and Java) without learning
three IDEs, and the use of software that has become robust from several years of
use by the C and C++ development community. The home page for Borland's Internet
development tools is as follows:
CodeWarrior is one of several IDEs that are available for Apple Macintosh or Microsoft
Windows Java development. CodeWarrior is a multilanguage development environment
with an introductory version called Discover Programming with Java that is intended
for novices. You can use CodeWarrior to develop programs in C, C++, ObjectPascal,
and Java. One interesting feature of this development environment is that you can
compile Windows versions of a Java program using a Macintosh and vice versa. The
main page for MetroWerks is the following URL:
Before being christened Kalimantan, this IDE was one of several Java-related products
that staked a claim to the name Espresso. The developers have been kind enough to
offer links to the other Espressos, so the Kalimantan Web page is a good place to
sort out any Espresso confusion you may have.
Kalimantan is another cross-platform IDE. It has been tested for use with Solaris
2.4 and up, as well as Windows 95 systems. Kalimantan's current beta release includes
only an inspector to look at the values of internal variables and a debugger, but
it is bundled with the teikade suite of utilities from PFU Limited. This
suite includes a class browser that is familiar to those who have used class browsers
with the Smalltalk programming language. The home page for Kalimantan is the following
Roaster was made available to developers in January 1996, making it the first
Java IDE for the Macintosh. The Roaster Professional Edition includes a visual interface
builder, the ability to compile programs that can be targeted for Macintosh or Microsoft
Windows systems, and an extended class library. The Sams.net guide Learn
Java for the Macintosh in 21 Days was written for the Roaster environment. Details
on Roaster are available from the following URL:
Microsoft Visual J++ is Microsoft's machine-proprietary answer to Java development.
It features extensions to the Java class library that are specific to Microsoft's
operating system and integrates Java with the component object model (COM) through
Microsoft ActiveX. Visual J++ is integrated with the Internet Explorer browser that
implemented Java with its 3.0 release. The home page for Visual J++ is the following
The integrated development environment that you choose depends on many factors:
your programming experience, the tasks you must accomplish, and personal preference.
Java Usenet newsgroups such as comp.lang.java.misc and comp.lang.java.programmer
are a way to get a range of user opinions on the IDEs you are considering. Many IDE
developers also participate in these forums, including Symantec representatives and
the developers of Java WorkShop.
Most Java IDEs that are not in final release can be downloaded over the World
Wide Web. It can be troublesome to download and install these trial versions, especially
if you must first uninstall something else, but the approaches taken in each IDE
are worth examining in detail. Of course, if you have grown comfortable with the
Java Developer's Kit from your use of it during this guide, no one says you have to
use one of the more complex IDEs.