9

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?

Dónal
  • 455

6 Answers6

4

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
Aaron
  • 6,714
3

You need to set javac too.

sudo update-alternatives --config javac
Seth
  • 58,122
1

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"
Chris S
  • 11
0

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

obysr
  • 780
  • I want version 7, not 6. The output of update-alternatives indicating that I'm already using version 7, but java -version shows that I'm still using version 6. – Dónal Jun 16 '13 at 21:48
0

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.

karel
  • 114,770
sumwale
  • 576
  • 1
  • 4
  • 7
0

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.

Anwar
  • 76,649