Windows/Unix/MacOS-X HOW-TO for Java

Step 1: Download JDK

Download the Java SDK from http://java.sun.com. Notice the difference between the Java Runtime Environment (JRE) and the Java Software Development Toolkit (JDK). JRE does not have the ability to compile java files, while JDK does. Download and install JDK, not JRE. If you are on windows, note the directory where you installed JDK. For example, I installed it at c:\Program Files\jdk.

Step 2: Download textbook programs

Go to http://www.cise.ufl.edu/~sahni/dsaaj/ and download progs.zip or eprogs.zip (recommended). Unzip the downloaded file to a local directory. For example, I could unzip eprogs.zip in c:\code on windows or /homes/amyles/code on Unix and MacOS X.

Step 3: Setting the environment variables

In order to be able to compile your java code from any directory and to be able to use the textbook programs from any directory, you need to set the PATH and CLASSPATH environment variables appropriately. How you do this depends on the specific operating system you are running.

Windows 95/98/ME

Edit c:\autoexec.bat in a text editor (like notepad). You need to append the path to include the bin directory in your jdk installation. For me, this bin directory is c:\Program Files\jdk\bin, and I would have to add the following line to my autoexec.bat file:

set PATH=c:\Program Files\jdk\bin;%PATH%

Additionally, you will need to append the working directory (.) and the textbook program directory (c:\code for me) to the CLASSPATH as follows:

set CLASSPATH=.;c:\code;%CLASSPATH%

Now, as it typical for Windows 95/98/ME, you will have to restart your computer for the settings to take permanent effect.

Windows NT/2000/XP

Go to Start&rt;Settings&rt;Control Panel. Double-click System and go to the Advanced tab. Click Environment Variables. In the dialog box that shows up, you will be able to see the User Variables and the System Variables. In the System Variables, choose the PATH variable and click edit. For the variable value, append the JDK bin directory to the path. For example, if your PATH value is '%SystemRoot%;%SystemRoot%\system32', you want to change it (in my case) to 'c:\Program Files\jdk\bin;%SystemRoot%;%SystemRoot%\system32'.

Similarly, append the CLASSPATH, or if there is no CLASSPATH variable (quite possible) create a new variable named CLASSPATH. Append the working directory (.) and the textbook code directory (c:\code for me) to the CLASSPATH. For example, if I didn't have a CLASSPATH variable, I would create one (as either a system variable or a user variable) with the value '.;c:\code'.

Unix/MacOS X

The PATH variable should not need setting. You can verify that by typing 'which java' and 'which javac', which should return the locations of these programs. The CLASSPATH environment variable still needs to be set. I will assume that you unzipped eprogs.zip in /homes/amyles/code. You need to edit your shell's settings file. For example, if you use csh, tcsh, bash, or zsh, you should have a corresponding settings file (.cshrc, .tcshrc, .bashrc, or .zshrc, respectively) in your home directory (/homes/amyles for me). To find out which shell you are using, open up a shell prompt and type 'echo $SHELL'.

Once you have located your shell settings file, edit it in your favorite text editor and add the following line to the end of it:

For csh and tcsh

setenv CLASSPATH .:/homes/amyles/code:${CLASSPATH}

For bash and zsh

export CLASSPATH=.:/homes/amyles/code:$CLASSPATH

Test your settings

Open up a command/shell prompt and go to your textbook directory (c:\code or /homes/amyles/code for me). Enter the dataStructures directory. Run the following commands at the prompt (NOTE: capitalization does matter!):
c:\code\dataStructures> javac ArrayLinearList.java

c:\code\dataStructures> java dataStructures.ArrayLinearList
Initial size is 0
The list is empty
List size is 4
The list is [1, 2, 4, 6]
The index of 4 is 2
3 not found
Element at 0 is 1
Element at 3 is 6
2 removed
The list is [1, 4, 6]
6 removed
The list is [1, 4]
The list is not empty
List size is 2
If your PATH and CLASSPATH settings are correct, the above commands should execute properly. You can verify your PATH and CLASSPATH settings at the command/shell prompt as follows:
c:\code\dataStructures> echo %PATH%
c:\Program Files\jdk\bin;C:\WINDOWS;C:\WINDOWS\system32

c:\code\dataStructures> echo %CLASSPATH%
.;c:\code

/homes/amyles/code/dataStructures$ echo $CLASSPATH
.;/homes/amyles/code