Hello World in Java (Windows)
This document instructs you on how to set up a Java programming environment
for your Windows
computer.
It also provides a step-by-step guide for creating and compiling a Java
program in IntelliJ and executing it from the command line.
You will need a 64-bit version of Windows 10 or 11 on Intel x86 hardware.
0. Install the Java Programming Environment
|
The installer installs and configures a Java programming environment, including
OpenJDK 11 and
IntelliJ IDEA Community Edition 2024.2.
-
Log in to the user account in which you will be programming.
Your account must have Administrator privileges.
-
Download the Windows installer
lift-java-installer.exe.
-
Double-click lift-java-installer.exe to install the software.
Enter your Windows password when prompted. Use all of the default options.
Warning
If you have previously used IntelliJ 2024.2,
run this installer only if you want a clean re-install.
The installer overwrites any existing IntelliJ 2024.2
settings with our novice-friendly settings.
The installer also performs a clean re-install of Git Bash,
which will overwrite any previous user settings, including .bashrc
.
-
Delete lift-java-installer.exe.
1. Open a Project in IntelliJ
|
You will develop your Java programs in an application called IntelliJ IDEA Community Edition.
IntelliJ organizes Java programs into projects.
In our context, each project corresponds to one programming assignment.
A typical project contains Java programs, associated data files, and
course-specific settings (such as compiler options, style rules, and textbook libraries).
-
Download the project for your programming assignment to a convenient location
(such as the Desktop).
[ sample project for COS 126 (Princeton) ]
[ sample project for COS 226 (Princeton) ]
[ sample project for Computer Science: Programming with a Purpose (Coursera) ]
[ sample project for Algorithms, Part I or II (Coursera) ]
To unzip the zip file, right click it and select Extract All.
This creates a project folder with the
name of the corresponding programming assignment (such as hello
).
Delete the zip file.
Warning
The project folders contain course-specific information. Be sure to download
the one corresponding to your institution and course.
-
To launch IntelliJ, click the Start button and type “IntelliJ IDEA Community Edition 2024.2”.
-
When you launch IntelliJ for the first time,
-
IntelliJ may display
the
JetBrains privacy policy.
Scroll down and Accept.
- IntelliJ may ask if you want to send anonymous usage
statistics to JetBrains. Choose your preferred option.
- IntelliJ will display the Welcome to IntelliJ IDEA
screen.
-
To open a project from the Welcome to IntelliJ IDEA screen,
click Open and select the project folder.
You should see an assignment logo (in the main editor window) and a list of
project files (in the Project View sidebar at left).
If you don't see the Project View sidebar,
select LIFT → Project (Ctrl + 1) to toggle it on.
When you launch IntelliJ for the first time,
it may take a minute or two to index your files;
some features will be unavailable until this process completes.
Warning
Do not click
New Project;
this option is intended for advanced programmers.
Also, always use
Open with a project folder, not an individual file.
-
When you are finished working, select the menu option
File → Exit to exit IntelliJ.
The next time you launch IntelliJ, your recent projects
will appear in the Welcome to IntelliJ IDEA screen for easy access.
2. Create a Program in IntelliJ
|
Now you are ready to write your first Java program.
IntelliJ features many specialized programming tools
including line numbering, syntax highlighting, bracket matching, auto indenting,
auto formatting, auto importing, variable renaming, and continuous code inspection.
-
To create a new Java program:
- Re-open IntelliJ and the project (if you closed it in the previous step).
-
Click the project name in the Project View sidebar (at left), so that it
becomes highlighted.
If you don't see the Project View sidebar,
select LIFT → Project (Ctrl + 1) to toggle it on.
-
Select the menu option LIFT → New Java Class.
When prompted, type HelloWorld for the Name, followed by Return.
-
In the main editor window, complete the Java program
HelloWorld.java
exactly as it appears below.
public class HelloWorld {
public static void main(String[] args) {
System.out.println("Hello, World");
}
}
|
Note that IntelliJ generates the gray boilerplate code automatically.
If you omit even a semicolon, the program won’t work.
-
As you type, IntelliJ highlights different syntactic elements
in different colors.
When you type a left bracket, IntelliJ adds the matching right bracket.
When you begin a new line, IntelliJ indents it.
-
To save the file, select the menu option File → Save All (Ctrl + S).
When you save the file, IntelliJ reformats your code (as necessary).
Tip
IntelliJ is configured to automatically save changes that you make
to your files upon various events (such as compiling, executing, closing a file or project,
or quitting the IDE).
We still recommend using File → Save All (Ctrl + S) frequently
for its code reformatting functionality.
3. Compile and Execute the Program (from IntelliJ)
|
Now, it is time to execute (or run) your program.
This is the exciting part, where your computer follows the instructions
specified by your program.
Before doing so, you must compile your program into
a form more amenable for execution on a computer.
-
Select the program that you wish to compile and execute in the
the Project View sidebar. The program should now appear in the main editor window.
-
To compile your program,
select the menu option
LIFT → Recompile 'HelloWorld.java' (Ctrl + B).
If the compilation succeeds, you will receive confirmation
in the status bar (at bottom).
If the compilation fails, a Recompile panel will open up (at bottom),
highlighting the compile-time errors or warnings.
Check your program carefully for typos, using the error messages as a guide.
-
To execute your program,
select the menu option
LIFT → Run 'HelloWorld' with Arguments (Ctrl + E).
Since this program takes no command-line arguments, click OK.
You should see the output of the program (in white), along with a message
that the program finished normally (with exit code 0).
Tip
Use the LIFT menu to compile and execute your program from IntelliJ.
The Build and Run menus support additional options for advanced programmers.
Also be sure that the main editor window is active before using the LIFT
menu (e.g., by clicking the code you want to compile or execute).
4. Compile and Execute the Program (from the command line)
|
The command line is a simple and powerful mechanism for
controlling your programs (e.g., command-line arguments,
file redirection, and piping).
IntelliJ supplies an embedded terminal
for easy access to the command line.
-
Select the menu option LIFT → Terminal (Alt + 2).
-
This will launch a
Git Bash terminal where you type commands.
You will see a command prompt that looks something like this:
~> Active code page: 65001
The ~/Desktop/hello
is the current working
directory, where
~
is shorthand for your home directory.
-
To compile your program,
type the following
javac
command.
More specifically, type the text in yellow that appears on the same line as the
command prompt.
~> javac HelloWorld.java
~>
Assuming that the file HelloWorld.java
is in the current working directory,
you should not see any compile-time errors or warnings.
-
To execute your program,
type the following
java
command:
~> java HelloWorld
Hello, World
You should see the output of your program beneath the line on which you typed the command.
Tip
Typically, you should compile from IntelliJ
(because IntelliJ highlights the lines on which any
compile-time errors or warnings occur) and execute from the command line
(because the command line makes it is easy to specify command-line arguments
and use file redirection).
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.
-
Computer Science: An Interdisciplinary Approach (including COS 126 students).
The program
Barnsley.java
uses our standard drawing and standard random libraries
in
stdlib.jar
to draw a
Barnsley fern.
When you execute the program, a standard drawing window will appear
and an image like this one will be generated, one point at a time:
To get your command prompt back, close the standard drawing window.
-
Algorithms, 4th Edition (including COS 226 students).
The program
CollidingDisks.java
uses various libraries in
algs4.jar
to simulate the motion of n disks subject to the laws
of elastic collision.
When you execute the program, a standard drawing window will appear
with an animation of 20 colliding disks.
To get your command prompt back, close the standard drawing window.
Frequently Asked Questions
|
Expand All
Collapse All
-
I installed IntelliJ and Java using
lift-java-installer.exe last semester or year.
Should I reinstall this semester?
-
Yes. This installer includes IntelliJ
and Java 11.
The old installer may have used an earlier version of
IntelliJ or Java. Be sure to uninstall the old
version before proceeding.
-
I wrecked some of my IntelliJ settings.
Can I rerun the installer to restore the settings?
-
Yes.
However, the proper way to reinstall software on Windows is to completely
uninstall it and then to reinstall it.
So, first, uninstall the software; then, run lift-java-installer.exe.
-
How can I uninstall the software?
-
- To uninstall everything,
navigate to
C:\Program Files\LIFT-CS
and launch the uninstaller unins000.exe
.
- To uninstall only IntelliJ, navigate to
C:\Program Files (x86)\JetBrains\IntelliJ IDEA Community Edition 2024.2\bin
;
right click the uninstaller Uninstall.exe
;
and select Run as administrator.
-
Can I run the installer using Run as administrator?
-
No. You must run the installer from an account in which you wish to program,
and that account must have Administrator privileges.
If you use Run as administrator,
the installer will not know the original user’s identity (so it can’t copy
files to the original user’s home directory).
-
The installer failed. How can I investigate why?
-
Check the installer logs at
%TEMP%\LIFT-CS\
and
%TEMP%\Setup Log YYYY-MM-DD #NNN.txt
,
where
%TEMP%
is typically
C:\Users\<Username>\AppData\Local\Temp
,
YYYY-MM-DD
is the current date,
and NNN
is an integer.
-
My machine is running Windows 8. Is that too old?
-
Yes.
Yes. IntelliJ 2024.2 requires Windows 10 or 11.
-
How long will the installer take to complete installation?
-
Once downloaded, it should take a couple of minutes.
The progress bar will not move while it installs the IntelliJ component,
so please be patient.
-
What does the lift-java-installer.exe installer do?
-
In short, it installs and configures
Java, IntelliJ,
Git Bash,
Xming,
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 sha256sum of lift-java-installer.exe?
-
a4b2e98e71ad7cff9118bf6612e1610fb7caaebd315da7e00d8457115b5ec18f
-
Can I run the installer from the command line?
-
Yes, lift-java-installer.exe accepts
optional command-line arguments,
which can be useful to system administrators.
-
Can I use a vendor and version of Java other than Temurin OpenJDK 11?
-
Yes.
You may use any version of Java 11 or newer from either Oracle or OpenJDK.
However, if you do so, you will
need to manually configure the Platform SDK and Project SDK via
IntelliJ via File → Project Structure.
We recommend sticking to the long-term support (LTS) versions: Java 11 and Java 17.
-
How can I check which version of Java is installed (and where it is installed)?
-
Type the following commands in the terminal:
~> javac -version
javac 11.0.20
~> java -version
openjdk version "11.0.20" 2022-04-19
OpenJDK Runtime Environment Temurin-11.0.20+8 (build 11.0.20+8)
OpenJDK 64-Bit Server VM Temurin-11.0.20+8 (build 11.0.20+8, mixed mode)
~> which javac
c/Program Files/Eclipse Adoptium/jdk-11.0.20.10-hotspot/bin/javac
~> which java
c/Program Files/Eclipse Adoptium/jdk-11.0.20.10-hotspot/bin/java
It’s important that the Java version numbers match and that you see the number
11
,
but the rest is not critical.
-
How does this custom 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:
- Disables all built-in plugins except Terminal and JUnit.
Installs the SpotBugs, Checkstyle-IDEA,
Run-with-Arguments,
Save-Actions,
and Archive browser plugins.
- Eliminates or reduces various popup elements
(lightbulbs, code folding, breadcrumbs, gutter markers, notifications, parameter hints).
- Simplifies menus and toolbars, hiding advanced options.
- Disables live templates and postfix completion.
- Adopts the Obsidian Black color scheme.
- Auto-configures Java upon installation.
- Adds a few keyboard shortcuts.
The course-specific project folders perform additional customizations:
- Streamlines autocomplete to display only relevant libraries
(such as
java.lang
,
java.util
, and algs4.jar
).
- Configures SpotBugs and Checkstyle with course-specific rules.
- Provides course-specific libraries (such as
algs4.jar
).
- Enables auto-formatting of code on save.
- Enables auto-importing of Java libraries.
-
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,
- Navigate to File → Project Structure → Platform Settings → SDKs.
- Click the + symbol (top left) to add an SDK.
- Locate an SDK. A typical location for a Java SDK on
Windows is
C:\Program Files\Java\jdk11.0.20
.
- Use the shorthand name suggested by IntelliJ
(e.g., 11 for version 11.0.20).
To manually configure the Project SDK,
- Navigate to File → Project Structure → Project Settings → Project.
- Choose the desired Project SDK from the drop-down list.
- Be sure to use 8 as the Project language level, as our autograder
currently supports only Java 8 features.
-
Which are the most important IntelliJ menu options to remember?
-
Here are the most important ones (and their shortcuts).
- LIFT → New Java Class (Ctrl + N). Create a new Java class.
- LIFT → Recompile (Ctrl + B). Compile the current program.
- LIFT → Run with Arguments (Ctrl + E). Run the current program with command-line arguments.
- File → Save All (Ctrl + S). Save (and reformat) all open files.
- View → Tool Windows → Project (Alt + 1). Show/hide the Project View sidebar.
- View → Tool Windows → Terminal (Alt + 2). Show/hide the Terminal window.
-
Any special characters to avoid when naming IntelliJ projects or files?
-
Do not use an exclamation mark
!
as the last character
in the project folder (or any directory name along the path to your project folder);
that will confuse both 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,
- Use Windows Explorer to copy the project folder,
giving it your preferred name.
- Delete any unwanted files.
- Be sure to keep
the
.iml
file (which defines the project),
the .idea
subdirectory (which contains
the IntelliJ course preferences), and
the .lift
subdirectory (which contains the course
libraries).
To create a new project from scratch, you can use the Create New Project option from the
Welcome screen. But, we do not recommend this approach for novice programmers.
-
Can I use a version of IntelliJ that is more recent than 2024.2?
-
Yes, though if it is 2024.3 (or above),
you will need to migrate your user preferences.
-
How I can I restore the original IntelliJ settings
(instead of the abbreviated novice-friendly ones)?
-
- To restore the menus and toolbars: Preferences → Appearances & Behavior → Menus and Toolbars → Restore All Defaults.
- To restore all settings: Help → Find Action → Restore Default Settings.
-
When I compile or execute 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
.
- When I open the IntelliJ embedded terminal, IntelliJ either launches
the wrong version of Bash (such as WSL Bash on MinGW Bash)
or produces an error message (such as "couldn't create PTY error").
How can I fix this?
- Navigate to File → Settings → Tools → Terminal → Shell path
and replace
bash
with
"C:\Program Files\Git\bin\bash"
.
- I get an error when I try to use execute a wrapper script (such as
javac-algs4
or java-introcs
).
How can I fix this?
- IntelliJ is probably launching the wrong shell (such as Command Prompt,
PowerShell, WSL Bash, or MinGW Bash).
To reconfigure to use Git Bash, follow the instructions in the previous question.
- International characters appear garbled in the terminal. What could cause this?
- When you launch the terminal, you should see the message
Activation code page: 65001
,
which configures the terminal to displays Unicode characters using UTF-8.
If you don't see this message, you are probably using the wrong version of Bash (such as WSL Bash or MinGW Bash).
To reconfigure to use Git Bash, follow the instructions in the previous question.
-
How should I configure Bash?
-
If you followed our instructions, our wrapper scripts (such as
javac-algs4
and
java-algs4
)
should already be available.
Our autoinstaller customizes the command line in a few ways by copying these three configuration files:
.bashrc
,
.bash_profile
, and
.inputrc
.
-
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 Mac OS X and Linux, type
Enter
Ctrl-D
.
On Windows, type Enter
Ctrl-Z
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.
-
To run SpotBugs 4.8.4, type the following command in the terminal:
~> spotbugs HelloWorld.class
Running spotbugs on HelloWorld.class:
The argument must be a list of .class
files.
Here is a list of
bug descriptions.
-
To run PMD 6.34.0, type the following command in the terminal:
~> pmd HelloWorld.java
Running pmd on HelloWorld.java:
The argument must be either a single .java
file or
a directory containing one or more .java
files.
Here is a list of
bug patterns.
-
To run Checkstyle 10.12.1, type one of
the following commands in the terminal, depending on whether you are COS 126, COS 226,
or Coursera student:
~> checkstyle -cos126 HelloWorld.java
Running checkstyle on HelloWorld.java:
~> checkstyle -cos226 HelloWorld.java
Running checkstyle on HelloWorld.java:
~> checkstyle -coursera HelloWorld.java
Running checkstyle on HelloWorld.java:
The argument must be a list of .java
files.
Here is a list of
available checks.
-
Can I use the Command Prompt, PowerShell, or Windows Subsystem for Linux
instead of Git Bash for Windows?
-
We strongly recommend Git Bash. For example, the commands
javac-algs4
and
checkstyle-algs4
will work only in Git Bash. If you want to use another shell, you’ll need
to configure it yourself.
-
Which Linux-style commands are available in Git Bash for Windows?
-
Here are the Bash built-in commands
and here are the external commands
in
C:\Program Files\Git\usr\bin
.