This tutorial describes how to install and configure latest Oracle Java JDK on CentOS 7, 6.5, and 6.4 servers. Although, the steps should work on other RPM based distributions such as RHEL 7, 6.x, Scientific Linux 6.x, and Fedora too.
First of all, update your server.
yum update
Then, search for if any older JDK versions are installed in your system.
rpm -qa | grep -E '^open[jre|jdk]|j[re|dk]'
Sample output:
gobject-introspection-1.36.0-4.el7.x86_64 pygobject3-base-3.8.2-4.el7.x86_64
To check the already installed Java version, enter the following command:
java -version
If Java 1.6 or 1.7 have been installed already, you can uninstall them using the following commands.
yum remove java-1.6.0-openjdk yum remove java-1.7.0-openjdk
Download And Install Oracle Java JDK
At the time of writing this tutorial, the latest Java JDK version was JDK 8u25. First, let us download the latest Java version.
Go to the Oracle Java download page and download the required version depending upon your distribution architecture.
As I use 64bit CentOS 7 server, I have downloaded the 64bit rpm package.
Then, go to the directory where you’ve downloaded the jdk package, and run the following command to install it.
rpm -ivh jdk-8u25-linux-x64.rpm
Sample output:
Preparing... ################################# [100%] Updating / installing... 1:jdk1.8.0_25-2000:1.8.0_25-fcs ################################# [100%] Unpacking JAR files... rt.jar... jsse.jar... charsets.jar... tools.jar... localedata.jar... jfxrt.jar...
Check Java version
Now, check for the installed JDK version in your system using command:
java -version
Sample output:
java version "1.8.0_25" Java(TM) SE Runtime Environment (build 1.8.0_25-b17) Java HotSpot(TM) 64-Bit Server VM (build 25.25-b02, mixed mode)
As you see above, latest java 1.8 has been installed.
Setup Global Environment Variables
We can easily set the environment variables using the export command as shown below.
export JAVA_HOME=/usr/java/jdk1.8.0_25/ export PATH=$PATH:$JAVA_HOME
Now, let us check for the environment variables using commands:
echo $JAVA_HOME
Sample output:
/usr/java/jdk1.8.0_25/
Or
echo $PATH
Sample output:
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin:/usr/java/jdk1.8.0_25/
However, the above method is not recommended. Because, the path will be disappeared when the system reboots. To make it permanent, you have to add the paths in the system wide profile.
To do that, create a file called java.sh under /etc/profile.d/ directory.
vi /etc/profile.d/java.sh
Add the following lines:
#!/bin/bash JAVA_HOME=/usr/java/jdk1.8.0_25/ PATH=$JAVA_HOME/bin:$PATH export PATH JAVA_HOME export CLASSPATH=.
Save and close the file. Make it executable using command:
chmod +x /etc/profile.d/java.sh
Then, set the environment variables permanently by running the following command:
source /etc/profile.d/java.sh
That’s it.
What if I didn’t remove the old JDK versions from my system?
As I mentioned before, make sure you have removed all old JDK versions from your system. If you didn’t remove the older versions from your server before installing latest JDK version, you should tell your system from where java should be executed.
By default, the JDK 1.8.x will be installed in /usr/java/jdk1.8.0_25/ location. In order to tell our system, from where java should be executed, we need to run the following commands one by one.
alternatives --install /usr/bin/java java /usr/java/jdk1.8.0_25/jre/bin/java 20000 alternatives --install /usr/bin/jar jar /usr/java/jdk1.8.0_25/bin/jar 20000 alternatives --install /usr/bin/javac javac /usr/java/jdk1.8.0_25/bin/javac 20000 alternatives --install /usr/bin/javaws javaws /usr/java/jdk1.8.0_25/jre/bin/javaws 20000 alternatives --set java /usr/java/jdk1.8.0_25/jre/bin/java alternatives --set jar /usr/java/jdk1.8.0_25/bin/jar alternatives --set javac /usr/java/jdk1.8.0_25/bin/javac alternatives --set javaws /usr/java/jdk1.8.0_25/jre/bin/javaws
All done. Let us check the alternatives.
ls -lA /etc/alternatives/
Sample output:
lrwxrwxrwx. 1 root root 29 Dec 2 16:24 jar -> /usr/java/jdk1.8.0_25/bin/jar lrwxrwxrwx. 1 root root 34 Dec 2 16:24 java -> /usr/java/jdk1.8.0_25/jre/bin/java lrwxrwxrwx. 1 root root 31 Dec 2 16:24 javac -> /usr/java/jdk1.8.0_25/bin/javac lrwxrwxrwx. 1 root root 36 Dec 2 16:24 javaws -> /usr/java/jdk1.8.0_25/jre/bin/javaws [...]
That’s it. Now check for the java version using command:
java -version
Sample output:
java version "1.8.0_25" Java(TM) SE Runtime Environment (build 1.8.0_25-b17) Java HotSpot(TM) 64-Bit Server VM (build 25.25-b02, mixed mode)
Cheers!