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?

4
  • Have a look at Java
    – Mitch
    Jun 16, 2013 at 6:06
  • @Mitch thanks, but it just says to use update-alternatives, which I've already tried
    – Dónal
    Jun 16, 2013 at 21:55
  • did you sudo apt-get install oracle-java7-set-default and reboot? Jun 16, 2013 at 22:05
  • 1
    FYI, 11.10 is End of Life.
    – Thomas Ward
    Jun 16, 2013 at 22:31

6 Answers 6

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
3

You need to set javac too.

sudo update-alternatives --config javac
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"
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

1
  • 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, 2013 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.

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.

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .