8

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?

  • Have a look at Java – Mitch Jun 16 '13 at 6:06
  • @Mitch thanks, but it just says to use update-alternatives, which I've already tried – Dónal Jun 16 '13 at 21:55
  • did you sudo apt-get install oracle-java7-set-default and reboot? – Eliran Malka Jun 16 '13 at 22:05
  • 1
    FYI, 11.10 is End of Life. – Thomas Ward Jun 16 '13 at 22:31
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
| improve this answer | |
3

You need to set javac too.

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

| improve this answer | |
  • 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.

| improve this answer | |
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.

| improve this answer | |

Your Answer

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

Not the answer you're looking for? Browse other questions tagged or ask your own question.