Automating the Oracle JDK installation on RHEL derivatives (such as CentOS, Oracle Linux) and Debian derivatives (such as Mint, Ubuntu) differs. This is due to different package managers and repositories. In this blog I’ll provide quick instructions on how to automate the installation of Oracle JDK 8 and 10 on different Linux distributions. I chose JDK 8 and 10 since they are currently the only Oracle JDK versions which receive public updates (seeĀ here).
Debian derivatives
Benefit of using the below repositories is that you will often get the latest version and can easily update to the latest version in an existing installation if you want.
Oracle JDK 8
sudo add-apt-repository ppa:webupd8team/java sudo apt-get update sudo echo debconf shared/accepted-oracle-license-v1-1 select true | sudo debconf-set-selections sudo echo debconf shared/accepted-oracle-license-v1-1 seen true | sudo debconf-set-selections sudo apt-get -y install oracle-java8-installer sudo apt-get -y install oracle-java8-set-default
Oracle JDK 10
sudo add-apt-repository ppa:linuxuprising/java sudo apt-get update sudo echo debconf shared/accepted-oracle-license-v1-1 select true | sudo debconf-set-selections sudo echo debconf shared/accepted-oracle-license-v1-1 seen true | sudo debconf-set-selections sudo apt-get -y install oracle-java10-installer sudo apt-get -y install oracle-java10-set-default
RHEL derivatives
Since RHEL derivatives are often provided by commercial software vendors such as RedHat and Oracle, they like to work on a subscription basis for their repositories since people pay for using them. Configuration of the specific repositories and subscriptions of course differs per vendor and product. For Oracle Linux you can look here. For RedHat you can look here.
The below described procedure makes you independent of vendor specific subscriptions, however you will not gain automatic updates and if you want to have the latest version you have to manually update the download URL from here and update the Java installation path in the alternatives commands. You also might encounter issues with the validity of the used cookie which might require you to update the URL.
Oracle JDK 8
sudo wget -O ~/jdk8.rpm -N --no-check-certificate --no-cookies --header "Cookie: oraclelicense=accept-securebackup-cookie" http://download.oracle.com/otn-pub/java/jdk/8u181-b13/96a7b8442fe848ef90c96a2fad6ed6d1/jdk-8u181-linux-x64.rpm sudo yum -y localinstall ~/jdk8.rpm sudo update-alternatives --install /usr/bin/java java /usr/java/jdk1.8.0_181-amd64/jre/bin/java 1 sudo update-alternatives --install /usr/bin/jar jar /usr/java/jdk1.8.0_181-amd64/bin/jar 1 sudo update-alternatives --install /usr/bin/javac javac /usr/java/jdk1.8.0_181-amd64/bin/javac 1 sudo update-alternatives --install /usr/bin/javaws javaws /usr/java/jdk1.8.0_181-amd64/jre/bin/javaws 1
Oracle JDK 10
sudo wget -O ~/jdk10.rpm -N --no-check-certificate --no-cookies --header "Cookie: oraclelicense=accept-securebackup-cookie" http://download.oracle.com/otn-pub/java/jdk/10.0.2+13/19aef61b38124481863b1413dce1855f/jdk-10.0.2_linux-x64_bin.rpm sudo yum -y localinstall ~/jdk10.rpm sudo update-alternatives --install /usr/bin/java java /usr/java/jdk-10.0.2/bin/java 1 sudo update-alternatives --install /usr/bin/jar jar /usr/java/jdk-10.0.2/bin/jar 1 sudo update-alternatives --install /usr/bin/javac javac /usr/java/jdk-10.0.2/bin/javac 1 sudo update-alternatives --install /usr/bin/javaws javaws /usr/java/jdk-10.0.2/bin/javaws 1
Looks like Oracle has added a requirement that cookie be accepted within 30 minutes of download, so this no longer works…
This is one of the reasons I prefer using Debian derivatives (mostly Ubuntu) for my environments. Oracle JDK installation (and installation of many other tools) is (often much) easier. Easiest altogether is using OpenJDK but sometimes you still need the Oracle JDK (for example with WebLogic).
Oracle’s inability to create and maintain RPM/DEB repos was the reason behind maintaining a copy of their packages in local repo, thus skipping the Oracle URL black magic.