After downloading the latest .tar file I ran tar zxvf jdk-7u45-linux-x64.tar.gz
to extract java files.
Set the path in .bashrc
file (vi ~/.bashrc
) as below;
export JAVA_HOME=/usr/lib/jvm/jdk1.7.0_45/bin/java
export PATH=$PATH:/usr/lib/jvm/jdk1.7.0_45/bin
export JDK_HOME=/usr/lib/jvm/jdk1.7.0_45
export JRE_HOME=/usr/lib/jvm/jre1.7.0_45
Now, running command java -version
or which java, java PATH still pointing to the older java version (java version "1.6.0_27"
).
I know default ubuntu takes OpenJDK path. I have to change the path as latest version as my system environment variable set in .bashrc
file.
Also, sudo update-alternatives --config java
Selection Path Priority Status
------------------------------------------------------------
0 /usr/lib/jvm/java-7-oracle/jre/bin/java 1062 auto mode
1 /usr/lib/jvm/java-6-openjdk/jre/bin/java 1061 manual mode
2 /usr/lib/jvm/java-7-oracle/jre/bin/java 1062 manual mode
* 3 /usr/lib/jvm/jdk1.7.0_45/bin/java 1 manual mode
Press enter to keep the current choice[*], or type selection number: 3
Ubuntu (and Debian) have an elegant way to manage libraries like the jdk
.
Using update-alternatives
you can manage multiple jdk
libraries on the same system, choosing which one you want to use as the main one.
First you have to install an alternative for the new installed jdk:
sudo update-alternatives --install "/usr/bin/java" "java" "/usr/lib/jvm/jdk1.7.0_45/bin/java" 1
sudo update-alternatives --install "/usr/bin/javac" "javac" "/usr/lib/jvm/jdk1.7.0_45/bin/javac" 1
In this way you install the new jdk
as an alternative to the original one.
Then you can choose which one you wan to use:
sudo update-alternatives --config java
sudo update-alternatives --config javac
You will be asked to choose which jdk you want to use, on my system I have:
There are 2 choices for the alternative java (providing /usr/bin/java).
Selection Path Priority Status
------------------------------------------------------------
0 /usr/lib/jvm/java-6-openjdk-i386/jre/bin/java 1061 auto mode
1 /usr/lib/jvm/java-6-openjdk-i386/jre/bin/java 1061 manual mode
* 2 /usr/lib/jvm/java-7-openjdk-i386/jre/bin/java 1051 manual mode
Press enter to keep the current choice[*], or type selection number:
At any time you can see what alternatives you have for java
or javac
using the --list
option:
sudo update-alternatives --list java
sudo update-alternatives --list javac
To see more options check the update-alternatives
man page.