How to Install the Java Development Kit on a Raspberry Pi

The Java programming language was first released back in 1995, and since then it has grown to become a giant among giants. According to Oracle, there are more than 9 million Java developers worldwide. And because of Android, there are millions of smartphones which run Java, while simultaneously every Blu-ray player in the world ships with Java. Last, but not least, Java is available for the Raspberry Pi!

To install Java 8 on your Pi use the following command:

sudo apt-get install oracle-java8-jdk

To check that everything installed OK, type:

java -version


The output shows that Java 1.8.0 has been installed. 1.8 means Java 8. The initial releases of Java were all “point” releases: 1.0, 1.1, 1.2, 1.3, and 1.4. But in 2004 when Java 1.5 was released, it was marketed as Java 5; however, 1.5 still remained the internal version number. So 1.5 is Java 5, 1.6 is Java 6, 1.7 is Java 7, and 1.8 is Java 8.

Now to write a simple Java program. Create a file called “” using nano:


The capital “H” is important, so be sure you type “” and not “”. Copy and paste the following code into the file:

public class Hello {
    public static void main(String[] args) {
        System.out.println("Hello Make Tech Easier");

In Java, the public class name must be the same as the file name. This makes it easier to find classes when you have big programs. If you need to find the class “TheNetworkListener,” then it will be in the file “,” and so on.

To compile the program type:


If the compilation was successful then there will be no output. But if the program has errors, then they will be displayed.

To run the program type:

java Hello

The output will be the string “Hello Make Tech Easier”


Congratulations, you have now written and run your first Java program on a Raspberry Pi.

You can also write GUI programs with Java. There are integrated development environments (IDE) like NetBeans, which allow you to design Java desktop applications graphically. But it is also possible to write GUI programs using just a text editor.

Create a file called “” with nano:


Copy and paste the following code:

import javax.swing.JOptionPane;
public class HelloDialog {
   public static void main(String[] args) {
      JOptionPane.showMessageDialog( null, "Hello MTE!" );

Make sure you have the Raspberry Pi desktop running (using “startx” if necessary). Compile the program using “javac” and run it using “java HelloDialog“.


The program uses Java’s GUI widget toolkit called Swing. All it does is show a message dialog box. However, more complex programs can be written using Swing. Create a file called “” and edit it with nano. Copy and paste the following code into the file.

import javax.swing.JFrame;
import javax.swing.SwingUtilities;
public class SimpleSwing extends JFrame {
    public SimpleSwing() {
       setTitle("Simple example");
       setSize(300, 200);
    public static void main(String[] args) {        
        SwingUtilities.invokeLater(new Runnable() {
            public void run() {
                SimpleSwing ex = new SimpleSwing();

The program is quite simple; however, it does show that you can create a window with a title. The window can be resized and closed, just as you would expect. This is the building block for more complex applications.


There are lots of tutorials online about the Java programming language. Here is a small selection:

If you have any problems with the examples given above or with getting Java to work on the Raspberry Pi, then please feel free to leave a comment below and we will see if we can help.

Gary Sims

Gary has been a technical writer, author and blogger since 2003. He is an expert in open source systems (including Linux), system administration, system security and networking protocols. He also knows several programming languages, as he was previously a software engineer for 10 years. He has a Bachelor of Science in business information systems from a UK University.

Subscribe to our newsletter!

Our latest tutorials delivered straight to your inbox