So far, weâve been using a basic text editor to edit our code, and weâve been using the command line to compile and run our classes. Itâs a good idea to start programming this way, so you understand the basics of compiling, running, setting the classpath, and looking stuff up in the Java API. But as you start working on more complicated code, youâre probably going to want to use an integrated development environment, aka an IDE.
An IDE is a more advanced code editor that also includes tools for navigating your code more easily, as well as compiling and running your code without going through the command line. If youâre coming from a Processing background, remember that you wrote Processing code in the Processing editor. The Processing editor ran your code when you pressed the play button, and it showed you errors without going through the command line. The Processing editor is an IDE.
This tutorial introduces you to another IDE called Eclipse, which is one of the most common IDEs used for Java development. (And most of the stuff you learn about here will apply to other IDEs as well.)
Go to the Eclipse homepage and find the download page. Download the Eclipse installer from there, and then run the installer. The first screen of the installer will ask you which version of Eclipse you want:

So if youâre going to write server code, then you should install the Java EE version. Otherwise you should just install the Java version. But you can always upgrade from Java to Java EE later, so for now I would just choose the Java version. Install Eclipse wherever you want (the default location it suggests is fine). After the installer finishes, launch Eclipse!
The first thing Eclipse will do is ask you for a workspace directory:

Eclipse needs a place to put your code and your settings, and thatâs what a workspace is. The directory you choose here will be where your code and settings files are saved. You can choose whatever directory you want here (again, the default is fine).
Starting out, youâll probably only use one workspace, so you can also check the âUse this as the default and do not ask againâ checkbox as well. But as you write more code, you might want to split it up into multiple workspaces: you might have the stuff you work on for your job or for school in one workspace, and the stuff you work on for fun in another workspace. You can worry about that later. For now, just click the OK button!
That will finally open up Eclipse, which by default will show you a Welcome screen. Freel free to close that tab, and uncheck the âAlways show Welcome at start upâ checkbox. You should see something like this:

Eclipse has a bunch of different tools and buttons, but donât feel overwhelmed. Weâll focus on the ones you care about, and you can ignore the rest for now.
Eclipse organizes code into projects, so before we can start writing code we have to create a project. Go to File > New > Java Project:

This opens up the New Java Project dialog. This dialog lets you change settings for your project, but for now just give your project a name and click the Finish button.

Now you should see your project in the Package Explorer tab in Eclipse:

Now that you have a project, you can finally start writing code. First, create a new class by expanding your project in the Package Explorer, then right-clicking the src directory, expanding the New menu, and then clicking the Class option.

That brings up the New Java Class dialog. This dialog contains a bunch of options you can set, but for now just give your class a name and click the Finish button.

This finally gives you a Java class you can type your code into!

You can type your code into Eclipse (after creating a project and a class) just like you could in a basic text editor. Letâs start by writing a simple program:
public class HelloWorld {
public static void main(String[] args){
System.out.println("Happy coding!");
}
}
As you start typing this into Eclipse, you might notice little windows popping up:

These are autocomplete suggestions, and they give you quick information about which functions you can call, as well as their documentation from the Java API. For example, the above autocomplete suggestion is telling us about all of the functions we can call on the System.out variable, and itâs even giving us the documentation for the println() function from the Java API.
This can be a nice way to find out what functions an object has, or exactly what parameters a particular function wants. But donât become too reliant on autocomplete! You should know that this same information is available in the Java API, and you should know how to look stuff up outside of Eclipse.
Anyway, when we have the above program typed into Eclipse, we can run our program by clicking the play button (itâs the green circle near the upper-left corner of the screen). No need to go through the command line!
As you type code into Eclipse, it will automatically try to compile your code whenever you make a change. This gives you immediate feedback when you make a mistake without going through the command line. For example, type this beginning of a program:
public class HelloWorld {
public static void main(String[] args){
JFrame frame = new JFrame("Hello World");
}
}
Youâll notice that Eclipse shows a red underline under the JFrame references, which means there are compiler error at those positions. Notice that you donât have to manually run the compiler to get these errors, Eclipse is constantly running it for you automatically. If you mouse over those red underlines, Eclipse will show you the compiler error in a popup:

In this case, the compiler error is because we havenât imported the JFrame class yet. Also notice that Eclipse has suggestions on how to fix the error, and if you click the Import 'JFrame' (javax.swing) option, Eclipse will automatically add the import statement for you! Try completing the code so a window saying âhello worldâ displays when you run your program.
Eclipse doesnât know how to fix every compiler error, but it does have reasonable suggestions for many of them. And being able to see the compiler errors as soon as they happen instead of waiting to run the compiler yourself is a huge benefit.
Also note that Eclipse will also show you various warnings as a yellow underline. This is stuff like unused variables or statements that donât actually do anything. These arenât errors and wonât prevent you from running your code, but they usually indicate that something isnât quite right with your code.
Remember from the Java libraries tutorial that we can use a Java library in our code by adding the libraryâs .jar file to the classpath when we compile and run our code. We did this through the command line using the -cp argument. We can also use Java libraries in Eclipse by setting our projectâs classpath.
To set your projectâs classpath, right-click your project, and then click the Properties option. This brings up a dialog with all the settings you can specify for your project. Click the Java Build Path menu, and then the Libraries tab, which takes you to this screen:

This is your projectâs classpath, and any library jars you want to use should be added here. Letâs add the JFreeChart jar file that we used in the the Java libraries tutorial. Click the Add External JARs... button, and then navigate to wherver the JFreeChart jars are. Remeber that JFreeChart requires two jars, so add them both. Your classpath should look like this:

Now that weâve set our projectâs classpath, click the OK button and letâs write some code that uses the library.
Create a new MyChart class and type this into it:
import javax.swing.JFrame;
import org.jfree.chart.ChartFactory;
import org.jfree.chart.ChartPanel;
import org.jfree.chart.JFreeChart;
import org.jfree.chart.plot.PlotOrientation;
import org.jfree.data.category.DefaultCategoryDataset;
public class MyChart {
public static void main(String[] args){
DefaultCategoryDataset dataset = new DefaultCategoryDataset();
dataset.addValue(10, "Dogs", "Animals");
dataset.addValue(42, "Cats", "Animals");
dataset.addValue(25, "Lizards", "Animals");
JFreeChart barChart = ChartFactory.createBarChart(
"Animals Chart",
"X Label",
"Y Label",
dataset,
PlotOrientation.VERTICAL,
true, true, false);
ChartPanel chartPanel = new ChartPanel(barChart);
JFrame frame = new JFrame("Chart Example");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.add(chartPanel);
frame.setSize(500, 500);
frame.setVisible(true);
}
}
Now you can run this code using the run button, and youâll see a window that uses the JFreeChart libary to create a bar chart:

Notice that a project can contain multiple classes that contain a main() method (so far ours contains both a HelloWorld class and a MyChart class), and Eclipse will run the one that you currently have selected.
Youâve probably noticed by now that Eclipse has a bunch of buttons, menus, and tabs. Thatâs because Eclipse contains a bunch of tools that make coding easier, but looking at all of them at once can be overwhelming. You can ignore most of these for now. Iâd start by closing the Task List and Connect Mylyn tabs.
You can also drag the tabs around to organize them however you want. For example I usually like the Outline tab to be on the left side of the screen instead of the right. Try dragging it so itâs below the Package Explorer tab, like this:

Eclipse calls these various tabs views, and you can see more of them by going to Window > Show View > Other..., which shows a hierarchy of every view you can see in Eclipse. This is also helpful if you accidentally close a tab- donât worry, itâs still here in this dialog!
For now, here are the views you probably care about:
Package Explorer lists all of your projects, and all of the classes within each project.Outline lists all of the variables and functions within the selected class.Console is where output like runtime errors and System.out.println() statements go.Problems lists any problems your code has. This is especially useful for âinvisibleâ problems that arenât tied to a specific line of code, such as classpath issues.You can also mouse over any button to get a description of what it does.
Hopefully youâre already familiar with debugging from the debugging Processing tutorial, so I wonât go into too much detail about exactly what debugging is. I just want to point out that Eclipse has its own debugger, which can be extremely useful for tracking down logic errors.
To use the debugger, first set a breakpoint in your code by clicking a line number in the class you want to debug. Then click the Debug button (itâs the little bug-looking icon next to the Run button). This will run your code until it reaches the breakpoint, at which point it will open up the debugging perspective, which is a predefined set of views that help with debugging.
At this point you can step through your code and see the value of variables and exactly what code is being executed, just like you could in the Processing editor.
When youâre done debugging, click the stop button and switch back to your regular perspective using the dropdown in the upper-right corner, or by going to Window > Perspective > Open Perspective > Java.
Here are a few useful features that we havenât covered yet.
Open Declaration. This will take you to the line that declared it. Try this with classes, functions, and variables.Open Call Hierarchy. This will open the Call Hierarchy view, which shows you every place in your code that uses the function or variable.Refactor and then click Rename. This will change the name in every place that uses it.Source menu.Preferences to change the color of something specific, or manually open Window > Preferences and then type the name of what you want to customize or navigate to General > Editors > Text Editors to customize your colors.General > Appearance to choose a theme.Eclipse can make your life much easier if youâre dealing with complicated code that contains multiple class files that each contain a bunch of variables and functions.
But itâs important to understand what Eclipse is doing in the background instead of just relying on Eclipse to do everything for you. For example, you should understand that the red underlines in Eclipse are coming from the Java compiler, and that clicking the run button in Eclipse is running your program using Java. You should understand what the classpath is. And you should understand that autocomplete is using the Java API to show you suggestions. That way when you find yourself in an environment that doesnât support Eclipse (I promise that will happen), you can still use a basic text editor and a command line to get the job done.
You also shouldnât feel like you need to use Eclipse. If youâre comfortable using a basic text editor and the command line, more power to you! I usually use a basic text editor and the command line for smaller projects that only contain a couple classes (I donât feel like going through all the Eclipse setup just to run a simple program), and I use Eclipse for more complicated code bases where navigating between files becomes more important. Like everything else in coding, it really comes down to personal preference.