Installing Java and JavaFX on the Raspberry Pi

One of the most read articles on this blog is about the installation of a recent Java on Raspberry Pi (March 13, 2019), so it’s time for an update!

Disclaimer: this article is only valid for Raspberry Pi’s with an ARMv7 or ARMv8 processor. In the Raspberry Pi specifications table on Wikipedia you get a clear overview of the Pi-types with this processor:

Raspberry Pi OS with Java 11

In the release notes of Raspberry Pi OS you can see that the version of 2019-06-20 includes OpenJDK Java 11:

2019-06-20:
* Based on Debian Buster
* Oracle Java 7 and 8 replaced with OpenJDK 11

So if we start with a fresh new Raspberry Pi OS we indeed get this Java version result:

$ java -version
openjdk version "11.0.3" 2019-04-16
OpenJDK Runtime Environment (build 11.0.3+7-post-Raspbian-5)
OpenJDK Server VM (build 11.0.3+7-post-Raspbian-5, mixed mode)

This means we are already good to start any Java 11 based program!

LibericaJDK to run JavaFX programs

As JavaFX is no longer part of the Java JDK (since version 11), running a JavaFX program on Raspberry Pi will not work out-of-the-box.

Luckily we can use the LibericaJDK which is provided by BellSoft. They have a version dedicated for the Raspberry Pi which includes JavaFX, so you will be able to run a JavaFX application with a simple “java -jar yourapp.jar” start command.

Installing LibericaJDK

We only need the download link from their site to install an alternative Java JDK like this:

$ cd /home/pi
$ wget https://download.bell-sw.com/java/13/bellsoft-jdk13-linux-arm32-vfp-hflt.deb
$ sudo apt-get install ./bellsoft-jdk13-linux-arm32-vfp-hflt.deb
$ sudo update-alternatives --config javac
$ sudo update-alternatives --config java

When this is done, we can check the version again and it should look like this:

$ java --version
openjdk version "13-BellSoft" 2019-09-17
OpenJDK Runtime Environment (build 13-BellSoft+33)
OpenJDK Server VM (build 13-BellSoft+33, mixed mode)

On my test-Pi I even keep different versions of LibericaJDK and switching is very easy with “update-alternatives”.

Install scripts on GitHub

On Github, in the sources of my book “Getting started with Java on Raspberry Pi”, you can find install scripts for multiple versions of LibericaJDK which already contain the correct download link for each one.


This article has also been published on “foojay.io - a place for friends of OpenJDK”