Как установить версию Java по умолчанию


8

Я использовал Java 6 в Ubuntu 11.10, но теперь я хочу обновить его до версии 7. Я установил версию 7 через PPA, как описано здесь . Если я бегу

sudo update-alternatives --config java

Я получаю следующий вывод:

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

Точно так же, если я бегу:

sudo update-alternatives --config javac

Я получаю вывод:

  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

Похоже, версия 7 уже используется по умолчанию. Но если я бегу либо

java -version

или

javac -version

Вывод указывает, что версия 6 по-прежнему по умолчанию. Как я могу установить по умолчанию для версии 7?


Посмотрите на Java
Митч

@ Митч спасибо, но он просто говорит об использовании update-alternatives, которое я уже пробовал
Dónal

ты sudo apt-get install oracle-java7-set-defaultи перезагрузился ?
Элиран Малка

1
К вашему сведению, 11.10 - конец жизни.
Томас Уорд

Ответы:


4

Согласно этому ответу: Как установить версию Java по умолчанию?

Попробуйте update-alternatives --installсначала указать явный путь , а затем выполните команду update-alternatives:

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


1

У меня такая же проблема. У меня был установлен Sun JDK6. После

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

перезагрузка была необходима для меня. Чем это сработало.

Изменить: я понял, что было недостаточно, чтобы сделать шаги выше.

Мне также пришлось редактировать переменную среды:

    sudo nano /etc/environment

И добавить (для другой версии Java потребуется другая строка):

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

0

введите число, которое идентифицирует желаемый путь, и нажмите ввод. в этом случае вставить 1.

наконец, попробуйте проверить версию java -version


Я хочу версию 7, а не 6. Вывод, update-alternativesуказывающий, что я уже использую версию 7, но java -versionпоказывает, что я все еще использую версию 6.
Dónal

0

Я предполагаю, что ваш двоичный файл Java указывает куда-то еще /etc/alternatives/java.

Проверьте вывод: type java

Это говорит /usr/bin/java? Если так, то проверьте, правильно ли это указывает на альтернативы:

ls -l /usr/bin/javaдолжен показать это, указывая на /etc/alternatives/java.

И наконец подтвердить , что /etc/alternatives/javaсамо по себе указывает на Java-7:
ls -l /etc/alternatives/java.

Команда update-alternatives корректирует только последнюю и предполагает, что точки по умолчанию, с /usr/bin/javaкоторыми, в свою очередь, правильно связаны /etc/alternatives/java.


0

Я перепробовал почти все методы, перечисленные выше, но все же обнаружил, что java -version печатал неправильную версию, хотя ls -al /etc/alternatives/javaуже указывал на правильную.

Итак, я запустил: which java и обнаружил, что результат показывает, что я использовал java from /usr/local/jdk_xxx/bin/java, затем я удалил эту папку и перезапустил терминал. Теперь Java работает хорошо.

Надеюсь, это поможет другим.

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.