How to set the default Java version

I have been using Java 6 on Ubuntu 11.10, but now I want to update to version 7. I've installed version 7 via PPA as described here. If I run

sudo update-alternatives --config java

I get the following output:

There are 2 choices for the alternative java (providing /usr/bin/java). Selection Path Priority Status
------------------------------------------------------------ 0 /usr/lib/jvm/java-7-oracle/jre/bin/java 64 auto mode 1 /usr/lib/jvm/java-6-sun/jre/bin/java 63 manual mode
* 2 /usr/lib/jvm/java-7-oracle/jre/bin/java 64 manual mode

Similarly, if I run:

sudo update-alternatives --config javac

I get the output:

 Selection Path Priority Status
------------------------------------------------------------ 0 /usr/lib/jvm/java-7-oracle/bin/javac 64 auto mode 1 /usr/lib/jvm/java-6-sun/bin/javac 63 manual mode
* 2 /usr/lib/jvm/java-7-oracle/bin/javac 64 manual mode

So it looks like version 7 is already the default. But if I run either

java -version

or

javac -version

The output indicates that version 6 is still the default. How can I set the default to version 7?

4

6 Answers

As per this answer: How to set default Java version?

Try providing the explicit path along with update-alternatives --install first, and then run update-alternatives to make your selection:

sudo update-alternatives --install "/usr/bin/java" "java" "/usr/lib/jvm/java-7-oracle/jre/bin/java" 1
sudo update-alternatives --config java
sudo update-alternatives --install "/usr/bin/javac" "javac" "/usr/lib/jvm/java-7-oracle/bin/javac" 1
sudo update-alternatives --config javac

You need to set javac too.

sudo update-alternatives --config javac

I had the same problem. I had sun jdk6 installed. After

 sudo update-alternatives --config java sudo update-alternatives --config javac sudo update-alternatives --config javaws

a restart was necessary for me. Than it worked.

Edit: I realized it was not enough to do the steps above.

I also had to edit the environment variable:

 sudo nano /etc/environment

And add (a different java version will require a different string) :

 JAVA_HOME="/usr/lib/jvm/java-7-openjdk-amd64"

insert the number that identifies the path you want and press enter. in this case insert 1.

finally, try to test the version java -version

1

I guess your java binary is pointing to somewhere other than /etc/alternatives/java.

Check the output of: type java

Does it say /usr/bin/java? If so, then check if that points correctly to alternatives:

ls -l /usr/bin/java should show it pointing to /etc/alternatives/java.

Lastly confirm that /etc/alternatives/java itself is pointing to java-7:
ls -l /etc/alternatives/java.

The update-alternatives command only adjusts the last one and assumes that default points to /usr/bin/java which in turn is correctly linked to /etc/alternatives/java.

I tried nearly every methods listed above, but still found java -version print the wrong version while ls -al /etc/alternatives/java already pointed to the right one.

So I run: which java and found that the result shows that I was using java from /usr/local/jdk_xxx/bin/java, then I deleted this folder and restarted the terminal. Now the java works well.

Hope it will help others.

Your Answer

Sign up or log in

Sign up using Google Sign up using Facebook Sign up using Email and Password

Post as a guest

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

You Might Also Like