Skip to content

Instantly share code, notes, and snippets.

@ribasco
Last active March 27, 2021 18:37
Show Gist options
  • Save ribasco/fff7d30b31807eb02b32bcf35164f11f to your computer and use it in GitHub Desktop.
Save ribasco/fff7d30b31807eb02b32bcf35164f11f to your computer and use it in GitHub Desktop.
How to install the latest java version in Raspbian (Stretch)

Introduction

The default version of java provided in the latest raspbian images are outdated, so we are going to install from the ppa:webupd8team/java repository instead. Please note that add-apt-repository ppa:webupd8team/java will not work, so we will need to add the repository manually.

Installation

  1. Create the gpg key file and paste the following lines of text below
nano key.txt
-----BEGIN PGP PUBLIC KEY BLOCK-----
Version: SKS 1.1.5
Comment: Hostname: keyserver.ubuntu.com

mI0ES9/P3AEEAPbI+9BwCbJucuC78iUeOPKl/HjAXGV49FGat0PcwfDd69MVp6zUtIMbLgkU
OxIlhiEkDmlYkwWVS8qy276hNg9YKZP37ut5+GPObuS6ZWLpwwNus5PhLvqeGawVJ/obu7d7
gM8mBWTgvk0ErnZDaqaU2OZtHataxbdeW8qH/9FJABEBAAG0DUxhdW5jaHBhZCBWTEOImwQQ
AQIABgUCVsN4HQAKCRAEC6TrO3+B2tJkA/jM3b7OysTwptY7P75sOnIu+nXLPlzvja7qH7Wn
A23itdSker6JmyJrlQeQZu7b9x2nFeskNYlnhCp9mUGu/kbAKOx246pBtlaipkZdGmL4qXBi
+bi6+5Rw2AGgKndhXdEjMxx6aDPq3dftFXS68HyBM3HFSJlf7SmMeJCkhNRwiLYEEwECACAF
Akvfz9wCGwMGCwkIBwMCBBUCCAMEFgIDAQIeAQIXgAAKCRDCUYJI7qFIhucGBADQnY4V1xKT
1Gz+3ERly+nBb61BSqRx6KUgvTSEPasSVZVCtjY5MwghYU8T0h1PCx2qSir4nt3vpZL1luW2
xTdyLkFCrbbIAZEHtmjXRgQu3VUcSkgHMdn46j/7N9qtZUcXQ0TOsZUJRANY/eHsBvUg1cBm
3RnCeN4C8QZrir1CeA==
=CziK
-----END PGP PUBLIC KEY BLOCK-----
  1. Add the gpg key
sudo apt-key add key.txt
  1. Add the repository to /etc/apt/sources.list.d/ and perform an update
echo "deb http://ppa.launchpad.net/webupd8team/java/ubuntu xenial main" | sudo tee /etc/apt/sources.list.d/webupd8team-java.list
echo "deb-src http://ppa.launchpad.net/webupd8team/java/ubuntu xenial main" | sudo tee -a /etc/apt/sources.list.d/webupd8team-java.list
sudo apt-get update
  1. Install Java 8 SDK
sudo apt-get install oracle-java8-installer 
  1. Verify that we have successfully installed java
pi@raspberrypi:~# java -version
java version "1.8.0_161"
Java(TM) SE Runtime Environment (build 1.8.0_161-b12)
Java HotSpot(TM) Client VM (build 25.161-b12, mixed mode)

Switching between versions

If you have multiple jvms installed and you want to switch back to a specific version of java you can do the following:

Option 1

  1. List the available versions in your system
update-java-alternatives -l
  1. Copy the key of the first column of the result of your target version
java-8-oracle                  1081       /usr/lib/jvm/java-8-oracle
  1. Execute the set command using the previously copied key
update-java-alternatives -s java-8-oracle

Option 2

sudo apt-get install oracle-java8-set-default

More details here

@ConorMulhern
Copy link

I went through the hoops of installing the Oracle JRE, but the Unifi controller kept using the 'wrong' version of Java, so I too installed the OpenJDK version;

sudo apt-get install openjdk-8-jre-headless -y

and the controller restarted without any issues.

@zachjacobs
Copy link

I went through the hoops of installing the Oracle JRE, but the Unifi controller kept using the 'wrong' version of Java, so I too installed the OpenJDK version;

sudo apt-get install openjdk-8-jre-headless -y

and the controller restarted without any issues.

This worked for me. Thanks @ConorMulhern!

@vicival
Copy link

vicival commented Jul 2, 2019

Didn't work (for me.. ; Raspberry Pi 3B & Raspbian stretch)
Did all the bits and at the end, I got this:

pi@pi:~ $ sudo apt-get install oracle-java8-installer
Reading package lists... Done
Building dependency tree
Reading state information... Done
Package oracle-java8-installer is not available, but is referred to by another package.
This may mean that the package is missing, has been obsoleted, or
is only available from another source
E: Package 'oracle-java8-installer' has no installation candidate

How about a more direct approach?
I have Oracle's Java SE Development Kit 8 ( jdk-8u212-linux-arm64-vfp-hflt.tar.gz )
made exactly for Broadcom BCM2837 ( meaning arm & hardware floating-point ) .
How do I "install" it ? ( aka put it in the right places )

I already have openjdk-8-jdk-8u212 but I suspect it has a ?? problem because Netbeans IDE 8.1 (which is using this openjdk)
can't download the List of Plugins (nor any other update) from its Netbeans Distribution repository
( it errors Unable to connect to the NetBeans Distribution because of Zero sized file reported at )
http://updates.netbeans.org/netbeans/updates/8.1/uc/final/distribution/catalog.xml.gz
while it can download fine another similar list from the Plugin Portal which is on a different repository
http://plugins.netbeans.org/nbpluginportal/updates/8.1/catalog.xml.gz
That's why I want to try "a different" JDK .
P.S. - I found this
P.S. - For what it's worth, I discovered why my brand new Netbeans IDE 8.1 could not update from updates.netbeans.org
The link for that distribution/catalog file should be https , not http .
So edit that hyperlink ( Plugins/Settings/Edit/'Update Center Customizer'_form/URL/ ) and make it https
https://updates.netbeans.org/netbeans/updates/8.1/uc/final/distribution/catalog.xml.gz

@ormanya
Copy link

ormanya commented Sep 14, 2019

I went through the hoops of installing the Oracle JRE, but the Unifi controller kept using the 'wrong' version of Java, so I too installed the OpenJDK version;

sudo apt-get install openjdk-8-jre-headless -y

and the controller restarted without any issues.

Worked for me. Thanks a lot!

@herlon214
Copy link

I went through the hoops of installing the Oracle JRE, but the Unifi controller kept using the 'wrong' version of Java, so I too installed the OpenJDK version;

sudo apt-get install openjdk-8-jre-headless -y

and the controller restarted without any issues.

Worked for me. Thanks!

@DubbyHarry
Copy link

pi@pi:~ $ sudo apt-get install oracle-java8-installer
Reading package lists... Done
Building dependency tree
Reading state information... Done
Package oracle-java8-installer is not available, but is referred to by another package.
This may mean that the package is missing, has been obsoleted, or
is only available from another source
E: Package 'oracle-java8-installer' has no installation candidate

I'm getting the same error on a Raspberry Pi 2B running Raspbian GNU/Linux 10 \n \l

Any ideas?

@ribasco
Copy link
Author

ribasco commented Sep 25, 2019

The PPA for oracle jdk 8 has been discontinued. I suggest you install the openjdk version instead.

@DubbyHarry
Copy link

The PPA for oracle jdk 8 has been discontinued. I suggest you install the openjdk version instead.

root@pi-hole:/home/pi# java -version
Error occurred during initialization of VM
Server VM is only supported on ARMv7+ VFP

Looks like I will re-install my Pi with Raspbian 9 instead of 10.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment