CSE logo University of Washington Computer Science & Engineering
 CSE 403 Sp 03 - Software
  CSE Home   About Us    Search    Contact Info 

CSE 403
 Home page
 Guest Speakers
 Other Links
Email list
    Software Tools

The software packages for this class are installed in the CSE labs. The download links provided here are only needed if you are doing the course work on some other system.


Download the installer from the Sun web pages (java.sun.com/j2se/1.4.1/download.html). Install Java in a directory where the pathname has no spaces. Don't use C:\Program Files\jdk141, instead use something like C:\apps\jdk141.

Java SDK sources and documentation

The source files for the class libraries are provided in the SDK download in a zip file. Sun also provides excellent documentation for all the class libraries. I strongly recommend that you download the documentation (from the same page as above) and install it so that you can have one-click local access to the API documentation in your browser.

J2ME Wireless Toolkit

The projects for this class will be built in part using the Wireless Toolkit from Sun. There is a special set of class libraries for compiling and running applications on small devices like cell phones. The Wireless Toolkit contains most of the required additional software and documentation. Download it at the Wireless Toolkit home page. We will use the 1.0.4 release in conjunction with the Mobile Media API emulator described next.

Mobile Media API

Some projects may use audio/video capabilities on the target device. The required emulator add-on for the WTK is available for download from the Mobile Media API home page.

Apache Ant

Apache Ant is a Java-based build tool. "In theory, it is kind of like Make, but without Make's wrinkles." Of course, it has wrinkles of its own. [8-Apr: The wrinkles include a bug, as it turns out. Do not install 1.5.2, use 1.5.1 instead.] The latest version of Ant is 1.5.2, available from the Ant home page. Install Ant in a directory where the pathname has no spaces. Don't use C:\Program Files\ant152, instead use something like C:\apps\ant152.

The following setup instructions are extracted from the Ant manual. See the complete installation instructions for more information.

Before you can run Ant there is some additional set up you will need to do:

  • Add the Ant bin directory to your path.
  • Set the ANT_HOME environment variable to the directory where you installed Ant. On some operating systems the ant wrapper scripts can guess ANT_HOME (Unix dialects and Windows NT/2000) - but it is better to not rely on this behavior.
  • Optionally, set the JAVA_HOME environment variable. This should be set to the directory where your JDK is installed.

Antenna, Ant tasks for wireless development

Download local copy: antenna-bin-097.jar. Place this jar file with your Ant installation in subdirectory lib. For example, on my system, this file is C:\apps\ant152\lib\antenna-bin-097.jar. If you are using jEdit and AntFarm, you should select Utilities - Global Options - Plugin Options - AntFarm - Build Options and enter this path in the text field for Jars for Ant Startup.

Antenna is also available from the project home page on sourceforge.net. Paraphrased introduction: Antenna provides a set of Ant tasks suitable for developing wireless Java applications targeted at the Mobile Information Device Profile (MIDP). With Antenna, you can compile, preverify, package, obfuscate, and run your MIDP applications (aka MIDlets), and manipulate Java Application Descriptor (JAD) files. Of course you can also do that with the J2ME Wireless Toolkit or other Java IDEs, but using an Ant script results in a defined and reproducable build process that is independent of a particular programming environment.


jEdit is an open source programmer's editor written in Java available at jedit.org. It is not required that you use jEdit for this class.

  1. Go to the jEdit download page and download the appropriate version of the latest stable release. You probably will want the Java-based installer.
  2. To install jEdit, simply double-click on the JAR file you downloaded; the installer should start automatically.
  3. If it doesn't, then you will need to open an MS-DOS prompt (Start->Programs->MS-DOS Prompt) and enter the following commands:
    • cd directory where you downloaded the JAR file
    • java -jar filename.jar
  4. For example, if you downloaded jedit41install.jar into C:\Downloads, you would enter:
    • cd C:\Downloads
    • java -jar jedit41install.jar
  5. If for whatever reason you want to start the installer in text-only mode, specify text as the last parameter on the command line. In text only mode, the installer will not display its GUI, and instead it will ask questions in the MS-DOS prompt.
  6. If you encounter a problem while installing jEdit, take a look at The jEdit FAQ

jEdit plugins

jEdit has a plug-in architecture and so there are quite a few useful utility modules that have been written to work with jEdit. Use the plug-in manager within jEdit to install them. The plugins that I use include: Ant Farm, Buffer Tabs, Character Map, Common Controls, Console, Error List, Java Browser, JCompiler, JDiff, JSwat, Latest Version Check, Whitespace, and XML.

Use menu item Utilities - Global Options - Docking to set quick access tabs for the various plugins. Use Utilities - Global Options - Toolbar to create one-click buttons to compile and run the current buffer or compile and run using an Ant build file.

close24.gif Add - Built-in Commands - Close
JavaCup24.gif Add - Plugin: JCompiler - Compile File
Play24.gif Add - Plugin: Console - Run Current Buffer ...
JavaCup24-ant.gif Add - Macros - ant-build. ant-build.bsh is a jedit macro containing: runCommandInConsole(view,"Ant","!build");
JavaCup24-ant.gif Add - Macros - ant-dist. ant-dist.bsh is a jedit macro containing: runCommandInConsole(view,"Ant","!dist");
Play24-ant.gif Add - Macros - ant-run. ant-run.bsh is a jedit macro containing: runCommandInConsole(view,"Ant","!run");

Right-click and save the image files for your use, or use any other images that you like.

Servlet development

In order to compile servlets, we need access to the servlet class definitions. These are not included in the J2SE (Standard Edition) download. These files are installed on adelie.cs and rockhopper.cs at /var/tomcat4. On the lab Unix systems they are at /cse/courses/cse403/03sp/tomcat4, and on the lab Windows systems they are at O:\cse\courses\cse403\03sp\tomcat4, assuming that \\ntdfs\cs is mapped to the O drive.

There is a zipped copy of the tomcat4 common directory here: tomcat4-jars.zip (2MB). If you are working at home, you can download it and unzip it somewhere. This location is "catalina.home" for your system (see next paragraph). You can also download and install the entire Release Build distribution package for Tomcat. I am using version 4.1.24, full download (not LE). For Windows, the .exe package provides a little bit of extra setup help versus just the plain zip file. Even if you don't intend to run the server on your development machine, installing Tomcat will give you the jar files and the documentation to store and use locally.

When using Ant to compile and build your servlet, you need to update the Ant build.properties file so that catalina.home points to the tomcat4 directory on your development system. Note that you should use forward slashes "/" in the pathname, Ant translates them as appropriate for your system.

Servlet documentation

  • We will not be using Java Server Pages or require any of the fancy capabilities of servlets, so don't let yourself get overwhelmed by the amount of information available. Read through the information and get oriented, then come back and read the details as you need them.
  • The Tomcat Kickstart textbook is a good guide to the fundamentals.
  • There is a Sun tutorial on servlets available at java.sun.com/webservices/docs/1.0/tutorial/doc/Servlets.html. Most of what you will need to know for writing simple servlets is covered in this fairly short tutorial.
  • The documents at the Jakarta site (source of the Tomcat server installed on rockhopper) also provide a good overview and introduction to the ideas needed for developing servlets and using Tomcat to run them. The top level link is jakarta.apache.org/tomcat/tomcat-4.1-doc/.
  • You should read the Application Developers Guide for a good introduction to the layout of a servlet. It seems kind of messy, but the sample servlet provided to you is in the expected configuration so you should be able to work from that.
  • The API javadocs for the javax.servlet and javax.servlet.http packages that a servlet uses to do its job are available from jakarta.apache.org/tomcat/tomcat-4.1-doc/servletapi/.
  • The complete Java Servlet 2.3 Specification is available from Sun. [www.jcp.org/aboutJava/communityprocess/final/jsr053/].

Database backend

  • Many of the servlets will need access to a database for their operation. PostgreSQL is installed and running on cubist.cs.washington.edu. This is the database you should use if you need one for your application. The jar file that contains the JDBC driver (Java DataBase Connector) for this database is postgresql.jar. On rockhopper and adelie (and cubist), this file is installed in /var/tomcat4/shared/lib/. This makes it visible to any servlet that needs it. There is also a copy in /usr/local/j2sdk1.4.1_02/jre/lib/ext. This makes it visible to regular java applications running from jar files.
  • There is general documentation on using PostgreSQL, as well as information about using the JDBC driver.
  • Jon Keto of our class wrote a set of instructions on using php to administer postgresql from a web page instead of the command line.
  • There is a Java tutorial on using databases [link]

Source configuration control

You will want to use a configuration management system of some sort during the projects. One relatively simple to use system is CVS. You can download the simple command line interface tool here. [ftp.cvshome.org/]. There is a UW ACM primer on CVS [link] and the main CVS manual is at [www.cvshome.org/docs/manual/].

Remote Access

For Windows, an SSH client installer is available here SSHSecureShellClient-3.2.2.exe and a key authentication manager is available here SSHAccessionLite.exe. These are from UW C&C, but you should note that C&C does not support Accession Lite and this version of Secure Shell does not have pre-built configuration customizations for use at the UW.

Code Metric Tools


Bug Tracking


Mailing Lists

Mailman Lists via C&C

CSE logo Computer Science & Engineering
University of Washington
Box 352350
Seattle, WA  98195-2350
(206) 543-1695 voice, (206) 543-2969 FAX
[comments to webmaster]