A typical installation of Ubuntu comes prepacked with the OpenJDK environment. This environment is substantially enough for regular users who wish to develop simple Java programs. However, some Java libraries are not included or compatible with the OpenJDK environment. Take Atlassian Jira as an example of an application that requires the more traditional and proprietary Sun Java JDK platform. Due to its proprietary status, Ubuntu does not include this in its repository. Hence, we would need to install this manually.
Despite the title, this guide has also been tested in a Fedora, Debian and CentOS environment. If it doesn't work for you, let me know by leaving a comment below! :)
Check Operating System Type
First things first, check whether you’re running on 32-bit or 64-bit Ubuntu:
The result will show you what type of operating system you have:
- i686 – 32-bit kernel
- x86_64 – 64-bit kernel
Now, go to the Oracle JDK download site and decide which version of JDK you would prefer.
In this guide, we'll be downloading Java JDK 8 Update 162. Accept the agreement, and copy the
tar.gz link for your operating system type.
wget to download the compressed file. In your terminal, type the following:
wget --no-cookies --no-check-certificate --header "Cookie: gpw_e24=http%3A%2F%2Fwww.oracle.com%2F; oraclelicense=accept-securebackup-cookie" "http://download.oracle.com/otn-pub/java/jdk/8u162-b12/0da788060d494f5095bf8624735fa2f1/jdk-8u162-linux-x64.tar.gz"
The cookie header is included in the
wget command because Oracle does not allow a direct download without accepting their agreement; thus, we parse a cookie to ensure that Oracle recognises that you have accepted their agreement.
Create a new directory under
sudo mkdir /opt/java
Then, extract the compressed file to the above directory:
sudo tar -xzvf jdk-8u162-linux-x64.tar.gz -C /opt/java/
Verify that the files are extracted correctly:
total 12K drwxr-xr-x 3 root root 4.0K Jan 10 05:16 . drwxr-xr-x 3 root root 4.0K Jan 10 05:12 .. drwxr-xr-x 8 uucp 143 4.0K Sep 6 02:32 jdk1.8.0_162
Now, we’ll create a symbolic link called
current and link it with the newly extracted JDK directory:
sudo ln -s jdk1.8.0_162/ current
total 12 drwxr-xr-x 3 root root 4096 Jan 10 05:20 ./ drwxr-xr-x 3 root root 4096 Jan 10 05:12 ../ lrwxrwxrwx 1 root root 12 Jan 10 05:20 current -> jdk1.8.0_162/ drwxr-xr-x 8 uucp 143 4096 Sep 6 02:32 jdk1.8.0_162/
Set Environment Variables and Path
Finally, we’re going to set the
$JAVA_HOME environment variable so that you’ll be able to run most Java applications.
To set for a single user:
Let’s load the
.bash_profile from the home directory:
Go to the end of the file, and add the following:
export JAVA_HOME=/opt/java/current export PATH=$PATH:$JAVA_HOME/bin
x to save the file, and
y to overwrite it.
Finally, to ensure the changes are instant, run the following command:
To set for all users:
This step is similar to the above, with the only exception being that you would need to edit the global
profile file. This allows every user the right to understand the environment variable that was set.
profile file can be found in the
/etc/ directory. You'll need to use the
sudo command to make changes to this file.
Once it's all completed, run the
java -version command to verify the correct Java version and type:
java version "1.8.0_162" Java(TM) SE Runtime Environment (build 1.8.0_162-b12) Java HotSpot(TM) 64-Bit Server VM (build 25.162-b12, mixed mode)