Hello World in Java (macOS)


This guide explains how to configure a Java programming environment on macOS Apple logo, create and compile a Java program in IntelliJ, and run it from the command line.

You will need an Apple silicon Mac running macOS 15 (Sequoia) to macOS 26 (Tahoe).


    0.   Install the Java Programming Environment


The installer configures OpenJDK 21, IntelliJ IDEA, OSS Edition 2026.2, and the course tools and libraries.


    1.   Open a Project in IntelliJ


You will develop your Java programs in IntelliJ, which organizes programs into projects. In our context, each project corresponds to one programming assignment and contains source files, data files, and course-specific settings.


    2.   Create a Program in IntelliJ


Now you are ready to write your first Java program. IntelliJ provides syntax highlighting, bracket matching, automatic indentation and formatting, automatic imports, variable renaming, and continuous code inspection.


    3.   Compile and Run the Program (from IntelliJ)


Before Java can execute (or run) your program, it must compile the source code.


Tip

Use the LIFT menu to compile and run your program from IntelliJ. The Build and Run menus support additional options for advanced programmers.

Before using the LIFT menu, click inside the editor window to make it active.


    4.   Compile and Run the Program (from the command line)


The command line provides a simple and powerful way to control programs using command-line arguments, file redirection, and piping. IntelliJ includes an embedded terminal for convenient access.


    5.   Textbook Libraries (from the command line)


To make our textbook libraries accessible to Java from the command line, you will use our wrapper scripts.

When you run the the program, the standard drawing window opens and animates 20 colliding disks.

To get your command prompt back, close the standard drawing window.


    Frequently Asked Questions


Expand All Collapse All


Installer FAQ
I installed IntelliJ and Java using the lift-java-arm64.pkg installer last semester or year. Should I run it again this semester?
Yes. This installer installs OpenJDK 21 and IntelliJ 2026.2. The old installer may have used an earlier version of Java or IntelliJ.
What happens if I rerun the lift-java-arm64.pkg installer?
It will reinstall and reconfigure OpenJDK 21, IntelliJ, SpotBugs, PMD, Checkstyle, our textbook libraries, and wrapper scripts.
Can I install only selected components?
Run the installer. On the Installation Type screen, click Customize and select the desired components:

We generally recommend a full installation. A custom installation can be useful if you already have a specialized .bashrc file. It might also speed things up if you need to reinstall, say IntelliJ IDEA, OSS Edition 2026.2, but not Java.

The installer overwrote my specialized .bashrc file. How can I revert to the original version?
If you didn't want this to happen, it's best to unmark the Bash Configuration Files component during installation, as described in the previous question. If it's too late for that, the autoinstaller creates a timestamped backup, such as .bashrc.20210706-191748. Rename or copy the most recent backup to .bashrc.
The installer failed. How can I investigate why?
Check the installer log at /var/log/lift.log.
I have macOS 14.0 (Sonoma). Is that too old?
Yes, sorry. IntelliJ 2026.2 requires macOS 15.0 (Sequoia) or newer.
How long will the installer take to complete installation?
After downloading, installation typically takes about one minute. With anti-malware software (such as McAfee Endpoint), it may take 5–10 minutes.
What does the lift-java-arm64.pkg installer do?
In short, it installs and configures Java, IntelliJ, SpotBugs, PMD, Checkstyle, and our textbook libraries, along with accompanying command-line tools. Here is a more detailed list:
How is the software licensed?
All of the included software is licensed under various open-source licenses.
What’s the SHA-256 checksum of lift-java-arm64.pkg?
6feadf08beba0de0135840e8c768f9157883f6c2635618931d48d62beca81984.
How can I run the installer from the command line?
From the target directory containing the package, type the command sudo installer -verbose -pkg lift-java-arm64.pkg -target /
How can I uninstall the software?
Java FAQ
Can I use a different Java or version?
Yes. You may use any version of Java 11 or newer from either Oracle or OpenJDK. If you do, you may need to configure the Platform SDK and Project SDK manually in IntelliJ under File → Project Structure. We recommend using long-term support (LTS) versions: Java 11, Java 17, Java 21, and Java 25.
How can I check which version of Java is installed (and where it is installed)?
Type the following commands in the terminal:
~/Desktop/hello> javac -version
javac 21.0.11
~/Desktop/hello> java -version
openjdk version "21.0.11" 2026-04-21 LTS
OpenJDK Runtime Environment Temurin-21.0.11+10-LTS (build 21.0.11+10-LTS)
OpenJDK 64-Bit Server VM Temurin-21.0.11+10-LTS (build 21.0.11+10-LTS, mixed mode, sharing)

~/Desktop/hello> /usr/libexec/java_home
/Library/Java/JavaVirtualMachines/temurin-21.jdk/Contents/Home
With the default installation, javac and java should both report version 21.
IntelliJ FAQ
How does this customized version of IntelliJ different from the standard one?
IntelliJ is an industrial-strength integrated development environment (IDE), suitable for use by professional programmers. The installer configures your user preferences to make it more suitable for use by novice programmers:

The course-specific project folders provide additional customizations:

How can I manually configure the Platform SDK and Project SDK in IntelliJ?
The installer should configure the Platform SDK automatically. To configure it manually,

To manually configure the Project SDK,

Where should I store my projects?
Store projects on a local drive (not a network drive, cloud-synced folder, or SMB share). Create one course folder with a separate subfolder for each assignment.
My IntelliJ project does not work properly if I save it under the Desktop, Documents, or Downloads. But it works fine if I save it elsewhere. Why?
macOS may restrict access to the Desktop, Documents, and Downloads folders until you grant permission. If you previously denied access, go to System Settings → Privacy & Security → Files & Folders→ IntelliJ.
Are there any special characters to avoid when naming IntelliJ projects or files?
Do not end the name of a project folder (or any enclosing directory) with an exclamation mark (!); doing so confuse IntelliJ and Checkstyle.
How can I create a new project in IntelliJ?
If you want to inherit all of the properties of an existing project,

To create a new project from scratch, you can use the New Project option from the Welcome screen. But, we do not recommend this approach for novice programmers.

What are the most important IntelliJ menu options to remember?
Here are the most important ones (and their shortcuts).
Can I use a version of IntelliJ that is newer than 2026.2.1?
Yes, though if it is 2026.3 (or above), you will need to migrate your user preferences.
How can I restore the original IntelliJ settings (instead of the custom novice-friendly ones)?
Command-Line and Embedded Terminal FAQ
When I compile or run a program from the command line that uses one of the textbook libraries, I get an error that it cannot find the library. How can I fix this?
Make sure that you are using the appropriate wrapper script, such as javac-algs4 or java-algs4.
How should I configure Bash?
If you followed our instructions, our wrapper scripts (such as javac-algs4 and java-algs4) should already be available.

The installer configures Bash by copying .bashrc, .bash_profile, and .inputrc. If you accepted the default installation options, no additional configuration is required.

How do I break out of a program in an infinite loop?
Type Ctrl-C.
How do I specify EOF to signal that standard input is empty?
On macOS and Linux, press Enter, then Ctrl-D. On Windows, press Enter, Ctrl-Z, and then Enter, even in Git Bash.
How can I run SpotBugs, PMD, and Checkstyle from the command line?
The installer includes wrapper scripts to simplify this process.
How can I change the default shell in the Terminal application from zsh to bash?
macOS uses zsh as the default shell. To use bash instead, run the following command in Terminal and enter your macOS password:
~/Desktop/hello> chsh -s /bin/bash
Finally, close the Terminal application and reopen it. Note that the embedded terminal within IntelliJ is configured to use bash regardless of the default shell.
When I try to compile with javac, I get an "error while writing" message. How can I fix this?
Anti-malware software such as Bitdefender may prevent Bash from writing class files. If so, designate bash as a safe program.