Hello World in Java on Mac OS X


This document instructs you on how to set up our Java programming environment for your Mac OS X computer. It also provides a step-by-step guide for creating, compiling, and executing a Java program using either DrJava or the Terminal. All of the software used is freely available on the Web.

These instructions apply to Mac OS X 10.4.11 and higher.

You can defer steps 4–6 until Section 1.5 of the textbook.

We strongly recommend using the Mac OS X installer described below; however, we do have manual instructions.


0.   Install the Programming Environment


Our installer downloads, installs, and configures the Java programming environment you will be using, including Java SE 6, DrJava, and the standard libraries from our textbook.


1.   Create the Program in DrJava


Now you are ready to write your first Java program. You will develop your Java programs in an application called DrJava. DrJava features many specialized programming tools including syntax highlighting, bracket matching, auto indenting, and line numbering.


2.   Compile the Program in DrJava


It is now time to convert your Java program into a form more amenable for execution on a computer. To do this, click the Compile button. If all goes well, you should see the following message in the Compiler Output pane at the bottom:

Compilation completed.

If DrJava complains in some way, you mistyped something. Check your program carefully, using the error messages in the Compiler Output pane as a guide.


3.   Execute the Program in DrJava


Now it is time to run your program. This is the fun part.

Congratulations, you are now a Java programmer!


4.   Command-Line Interface with the Terminal


The command-line provides capabilities beyond those available in DrJava, including redirection and piping. You will type commands in an application called the Terminal.


5.   Compile the Program from the Terminal


You will use the javac command to convert your Java program into a form more amenable for execution on a computer.


6.   Execute the Program from the Terminal


You will use the java command to execute your program.


Troubleshooting


The installer didn't work on my machine. What should I do? First, please contact a staff member to identify what went wrong.

What does the installer do? In short, it downloads, installs, and configures Java3D, Java OpenGL, our standard libraries, Checkstyle, Findbugs, and DrJava. Here is a more detailed list:

  1. Checks that Java is installed.

  2. Downloads and installs Java3D 1.5.2 from j3d.zip and Java OpenGL 1.1a from jogl.zip.

  3. Downloads the textbook standard libraries from stdlib.jar.

  4. Downloads and installs Checkstyle 5.4 from checkstyle.zip. Downloads our checkstyle configuration file checkstyle.xml and execution script checkstyle.

  5. Downloads and installs Findbugs 1.3.9 from findbugs.zip. Downloads our findbugs configuration file findbugs.xml and execution script findbugs.

  6. Downloads and installs the latest stable version of DrJava, from drjava-osx.tar.gz. Creates a shortcut to DrJava on the desktop. Downloads and installs the DrJava configuration file from drjava-config.txt to /Users/username/.drjava. Note that this will overwrite any existing .drjava configuration file.

  7. Tests that the installation succeeded by compiling and executing TestIntroCS.java.

Why does the installer need my password? The installer copies a few files into the /Users/username/Library/Java/Extensions directory, which requires superuser privileges.

How do I completely uninstall introcs.app?

What happens if I rerun the installer? It will re-download, install, and configure Java 3D, Java OpenGL, our standard libraries, Checkstyle, Findbugs, and DrJava.

I am using a different version of Java in DrJava and the Terminal. Is this a problem? Yes, they should both be either 1.5 or 1.6; otherwise, you may get a "class file has wrong version 50.0, should be 49.0" error. If the versions of Java are different, go to /Applications/Utility/Java Preferences.app and verify that the Java SE 6 (64-bit) entry is checked and at the top of the list; if not, drag to change the preferred order.

What should I do if I have previously installed DrJava in another location? We suggest deleting it and using the version in /Users/username/introcs by using the newly created shortcut to DrJava on the desktop.

Why Java 6 instead of Java 7? Mac OS X and DrJava do not currently support Java 7.

Can I use a different version of Java? Yes, any version of Java 5 or Java 6 should work fine.

Can I update DrJava to use a newer version? Yes, but you do not need to do so.

Can I use a different IDE? Yes you can use another IDE (such as Eclipse) but you will have to configure the IDE properties yourself (such as the classpath).

How do I break out of an infinite loop? In DrJava, click the Reset button in the menubar or select the menu option Tools -> Reset Interactions. From the Terminal, type Ctrl-c.

When using standard input, how do I signify that there is no more data? If you are entering input from the keyboard, type Ctrl-d for EOF (end of file).

I successfully compiled HelloWorld.java with javac, but, when I execute, I get the error message "Exception in thread "main" java.lang.NoClassDefFoundError: HelloWorld". What am I doing wrong? First, verify that the file HelloWorld.class is in the current directory. Be sure to type java HelloWorld without a trailing .class or .java.

When I compile or execute a program in Terminal that uses one of the textbook libraries, I get an error that it cannot find the library. How can I fix this? Verify that the following file is in the specified location:

Which shell should I use in the Terminal? Bash is the default shell on Mac OS X Lion, but feel free to use whichever one you prefer.

Where can I learn more about the command line? Here is a short tutorial on the command line.