Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Ubuntu: change the path from OpenJDK 6 to Oracle JDK 7

Tags:

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 
like image 609
Devendra Singh Avatar asked Jan 14 '14 13:01

Devendra Singh


People also ask

Is OpenJDK same as Oracle JDK?

So, Is OpenJDK the Same As Oracle JDK? OpenJDK has the same code as OracleJDK, depending on what provider you're using. The key difference (as stated above) is that OpenJDK is an open source java development kit, whereas Oracle JDK is closed source.


2 Answers

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.

like image 163
Atropo Avatar answered Oct 26 '22 07:10

Atropo


You probably want to do

export PATH=/usr/lib/jvm/jdk1.7.0_45/bin:$PATH 

OpenJDK is probably still in the path, and Linux will use the first java it finds.

If you don't need it, I would recommend uninstalling OpenJDK.

like image 29
Petter Avatar answered Oct 26 '22 06:10

Petter