Building Your First Java Program: Starting From Scratch

Welcome to CS 1331! If this is your first time using a corporate-grade programming language, then you will probably find this tutorial quite useful! The point of this guide is to familiarize you with the basic workings of Java enough to allow you to install and configure the Java Virtual Machine, set up any path settings, and setup an Integrated Development Environment (IDE) to then write the actual Java code. Hopefully, this will give you enough knowledge and elbow room to experiment and learn more about Java on your own. Good luck!


 
Java Installation Overview (Win) (Mac)
Configuring the Java Virtual Machine (Win) (Mac)
Writing a Java Class (Win / Mac)
Compiling / Running your Java code (Win) (Mac)
Overview and Installation of IDEs (Win) (Mac)
Conclusion (Win / Mac)

 


Java Installation Overview - Windows

This part will cover installation of the newest version of Java, 11.0, on your computer. It is important that you have this new version on your computer. To begin, you may want to check to be sure that you have no previous (10 or earlier) version of Java installed and, if you do, you must uninstall it before continuing. So first we will check for previous installations.

Let's begin by opening up your Control Panel. Go to the Windows search panel in the bottom left and start typing "control panel". (see below) Then select the Control Panel from the menu of choices that come up.

Now, select the option "Programs - Uninstall a Program" from the list. From the list of programs that then pop up, scroll downward and look for any program(s) with the name "Java SE Development Kit" in it. If you find one or more, note the version number. If the version number is 10 or less, you may want to uninstall those Java programs before continuing (though it is not required). You can do this by selecting the programs and clicking the "Uninstall" item that appears at the top. If the version number is 11, then you can skip the rest of this installation chapter, as you have a new enough version of Java running for our class! (As of this writing, Java is at Update 1 of version 11, so if you have an earlier Update, you still may want to install the newest one.) If there is no Java installation listed, or you have already uninstalled a previous installation, simply keep reading!

The next step will be to download Java itself. Go to the Java download page at https://adoptopenjdk.net/?variant=openjdk11&jvmVariant=hotspot and download the latest release (big blue button, you shouldn't need to change any options). The file will download to your computer as a .zip, which you can open using a program like `7-zip.` From `7-zip`, click the 'Extract' button in the top left and choose a common location when prompted, like your downloads folder. See below:

Next, move this extracted folder from the location you downloaded it to the folder `C:\Program Files\Java`. You may need to create the `C:\Program Files\Java` if it doesn't exist. If your system asks for administrator permissions to move the folder, click 'Continue'.

You should end up with a folder named something like `jdk-11.0.1+13` within the `C:\Program Files\Java` directory.

Congratulations! You've installed Java. Now to configure it!


Java Installation Overview - Macintosh

Follow the steps below to set up Java on your Mac.

  1. Install homebrew by following the install instructions on this page: https://brew.sh/
  2. Open the terminal and run the command brew cask install adoptopenjdk

Now that Java is installed, we will configure it!



Configuring the Java Virtual Machine - Windows

Now we need to set up the path environment variables so you can compile and run your programs from the command line.

This section isn't so much about configuring the VM itself, as it is setting up Windows to recognize exactly where the VM is. First, locate the Java installation on your computer. Open an Explorer window, then (assuming you installed it in the default location) navigate to `C:\Program Files\Java`. You should see one more more folders; find the one starting with "jdk" with the highest number (it's possibly jdk-11.0.1+13).

Note that if you only have folders here starting with "jre", then you have only installed the Java Runtime Environment on your machine. That is not good enough for our class. So in that case, go back up higher on this page and follow the instructions for downloading the "jdk".

OK, assuming you have the jdk on your machine, open that folder, then find the bin folder inside. Open the bin folder and look for a program called "javac.exe". If you see the program, you've found the correct folder. The full path should be something similar to `C:\Program Files\Java\jdk-11.0.1+13\bin`. Copy your path to your clipboard or memorize it. Now, you must once again access the Control Panel:

Follow the directions earlier on this page in the "Java Installation Overview" section to access the Windows Control Panel, which will give you the window below. Click on the "System and Security" item in the dialog box.

Now, click on the "System" item.

This should bring up a window with lots of information about your computer. Click on the "Advanced system settings" item over on the left side.

This should bring up a "System Properties" window. Near the bottom of the window will be a button with the title "Environment Variables". Click on that.

From the list of variables on the bottom, highlight the one that says "Path" and click the "Edit" button.

This will bring up a list of all the different folders in which Windows will look for executable programs on your machine. Add a new path by clicking 'New' and pasting the path that you copied previously (similar to `C:\Program Files\Java\jdk-11.0.1+13\bin`). Move this new path to the top of the list by selecting it and clicking the 'Move Up' button repeatedly. You should end up with something similar to this:

Click ok, close any command prompts you might have open, and your system should be able to find the Java VM after you open a new command prompt. You can test by opening a command prompt and typing "javac"...if it says "not recognized as an internal or external command", it isn't working yet. If it doesn't work immediately, be sure all command prompts are closed and try again. If that doesn't work, then you likely made a mistake somewhere along the way, and we recommend getting some help from a TA who can assist you to get it set up properly.




Configuring the Java Virtual Machine - Macintosh

If you have Java 11 on your machine, it is likely configured correctly to be used. If you aren't able to run java from the command line, you likely need to add /usr/bin to your path. Consult the documentation for your command shell in case you do not know how to modify your command path.




Writing a Java Class - Windows/Macintosh

Alright! You're in the home stretch for setting up Java and getting your first application off the ground. Bear with me for just a little longer - you're already well beyond the hardest parts (unless I screwed up somewhere and something isn't working quite right, in which case you should contact your TA or instructor!).

To write your first program on either Windows or Mac, we recommend that you get a text editor such as Sublime Text. (Prof. Stasko uses emacs, but then again, he's a dinosaur.) Once you have it, just create a new file called Test.java. Now type these mysterious words into this text window:

public class Test {
   public static void main(String [] args) {
     System.out.println("Hello!");
  }
}

My my, this sure looks mysterious! Let's see what this code means, exactly. The first part:

public class Test {

This is a declaration. It is creating a class called "Test." A class, in Java, is more accurately known as an Object. Think about Object intuitively, as you would any actual tangible, physical object that does...something. A car, for instance, could be an Object. All Object have attributes, or the specific aspects of the Object that make it what it is. For a car, its attributes could be tires, seats, power locks, XM radio, a turbocharged V6, a 6-disc changer...you get the idea. Objects will also have member methods, or the functions that cause the Object's attributes to interact together, or even with other Objects, to accomplish certain tasks. For instance, with the assistance of roads and signals, and utilizing its power steering, tires, and engine, a car can "drive."

For this example, we're keeping it simple. This class, or Object, will not do anything other than print out some sentences.

An important thing to note, first. Java is picky about syntax. Whatever you name the .java file (the file in which you will write your programs), that must also be the name of the class itself (the word after "public class ____"), and it is case-sensitive.

Now back to our original text window. You should have typed in the original example, and now you should save it.

Now that you have the class name and file name matching correct, let's continue with our analysis of this short block of code. The next part:

public static void main(String [] args) {

Without going into too much detail about the meanings of each individual word there, just know that every project you write will need to have at least one of these in it. When you run the project, this is what Java will look for at the very beginning, and execution of your entire project will start here. Next line:

System.out.println("Hello!");

Here, an Object is being used! It is an Object called "System," and we are using one of its member methods to do something. In this case, the method is called "println" and it prints out to your monitor whatever is written inside the quotation marks that are inside the parenthesis.

Remember, Java is very picky about syntax, so every curly brace you open, you must close. Every opening parenthesis must be matched by a closing parenthesis. Also, you need semicolons at the end of every line of execution code (as shown in the example).

Now the moment of truth! Let's see if this sucker runs and does what it should. Examine the next subsection of this document below that describes how to compile and run your program. Should everything behave properly, you should eventually see everything inside the println( ) parenthesis print out to your command window! Experiment and change what is inside those parenthesis, recompile the file, and run it again.


Compiling and Running Java programs from the command prompt

It is important to know how to compile and run your code from the command line, as this is how the TA's will be grading all of your work.  Before submitting your homework, it is highly recommended that you verify that your code compiles and runs from the command line.

Using Windows:

To open up a command prompt, go to the Windows search box in the lower left of your computer's interface and start typing command prompt. Choose the "command prompt" program. A new window should pop up that is black and has some gray depressing text on it. You will need to navigate to the directory (folder) where you saved your .java files. To do this, use the "cd" command, which stands for "change directory". An example of doing this is shown below.

 

To compile the files, enter:

javac JavaClassNameHere.java

Where "JavaClassNameHere" is the name if your Java program.  If you want to compile all the files in the current directory, enter:

javac *.java

 

To then run the compiled code, enter:

java -cp . JavaClassNameHere

(for the example Test.java class specified above, the command to run would be "java -cp . Test")

The "-cp ." parameter specifies the "class path", which is the directory that any required class files are read from
(If your confused about what this means, don't worry, as its not important to understand right now.  But just remember to use the javac command as specified above.)

Notice that you must specify the .java extension when you compile, but not when you run the code.

Using a Mac:

The procedure for compiling and executing java code from a command prompt is the same for all operating systems, in that the syntax for using java and javac are identical for Windows, Mac, and Unix (Linux) systems. Refer to the "Compiling and running under windows" subsection just above, only use the "terminal" or "shell" programs instead of the Windows command window to access a command prompt.


Overview and Installation of IDEs - Windows

To be filled in later.


Overview and Installation of IDEs - Macintosh

To be filled in later.


Conclusion

Congratulations! You have successfully learned about, downloaded, installed, and configured the Java Virtual Machine and software development kit, as well as tied a fully-functional IDE in with it to ultimately produce a working Java application! Not to mention, you can now look like an erudite programming guru by compiling and running your source files from the command prompt.

This tutorial was meant to give some insight into getting an introductory Java course off the ground, especially to those have had little or no previous programming experience. I have almost always found the most difficult part of the course not to be the homeworks or exams or quizzes, but rather setting up everything that I need to complete all those assignments, and unfortunately, it is this "setting up" information that seems the hardest to come by. To those in the same boat as I, this is for you. Remember that there are also countless other useful IDEs out there aside from the ones mentioned here.

I hope you have found this introduction to be useful. As you become more comfortable in the Java programming environment, you will find most IDEs to be friendly in terms of their flexibility with your goals for your programs. As a disclaimer, if you are having ANY problems doing anything mentioned in this tutorial, do not be hesitant to ask any of your TAs, professors, or even fellow students for clarification, as getting all this basic functionality to work is crucial to successfully completing CS 1331. Even a week of dealing with dysfunctional classpaths and sick Virtual Machines can set your integration into CS 1331 back several weeks.

Good luck and good programming!