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.
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.
Run
sudo update-java-alternatives --list
to list off all the Java installations on a machine by name and directory, and then run
sudo update-java-alternatives --set [JDK/JRE name e.g. java-8-oracle]
to choose which JRE/JDK to use.
If you want to use different JDKs/JREs for each Java task, you can run update-alternatives to configure one java executable at a time; you can run
sudo update-alternatives --config java[Tab]
to see the Java commands that can be configured (java, javac, javah, javaws, etc). And then
sudo update-alternatives --config [javac|java|javadoc|etc.]
will associate that Java task/command to a particular JDK/JRE.
You may also need to set JAVA_HOME for some applications: from this answer you can use
export JAVA_HOME=$(readlink -f /usr/bin/java | sed "s:bin/java::")
for JREs, or
export JAVA_HOME=$(readlink -f /usr/bin/java | sed "s:jre/bin/java::")
for JDKs.
Try typing the following in your terminal.
sudo update-alternatives --config java
The output will be some choices and you can select the correct one which installed to your computer.
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.