Ubuntu: измените путь от OpenJDK 6 до Oracle JDK 7

После загрузки последнего файла .tar я запустил tar zxvf jdk-7u45-linux-x64.tar.gz для извлечения java файлов.

Задайте путь в файле .bashrc (vi ~/.bashrc), как показано ниже;

export JAVA_HOME=/usr/lib/jvm/jdk1.7.0_45/bin/java
export PATH=$PATH:/usr/lib/jvm/jdk1.7.0_45/bin
export JDK_HOME=/usr/lib/jvm/jdk1.7.0_45    
export JRE_HOME=/usr/lib/jvm/jre1.7.0_45

Теперь, выполнив команду java -version или java, java PATH все еще указывает на более старую версию java (java version "1.6.0_27").

Я знаю, что по умолчанию ubuntu использует путь OpenJDK. Я должен изменить путь как последнюю версию, как переменную моей системной среды, установленную в файле .bashrc.

Кроме того, sudo update-alternatives --config java

Selection    Path                                      Priority   Status
------------------------------------------------------------
  0            /usr/lib/jvm/java-7-oracle/jre/bin/java    1062      auto mode
  1            /usr/lib/jvm/java-6-openjdk/jre/bin/java   1061      manual mode
  2            /usr/lib/jvm/java-7-oracle/jre/bin/java    1062      manual mode
* 3            /usr/lib/jvm/jdk1.7.0_45/bin/java          1         manual mode
Press enter to keep the current choice[*], or type selection number: 3

Ответ 1

Ubuntu (и Debian) имеют элегантный способ управления библиотеками, такими как jdk.

Используя update-alternatives, вы можете управлять несколькими библиотеками jdk в той же системе, выбрав тот, который вы хотите использовать в качестве основного.

Сначала вам нужно установить альтернативу для нового установленного jdk:

sudo update-alternatives --install "/usr/bin/java" "java" "/usr/lib/jvm/jdk1.7.0_45/bin/java" 1
sudo update-alternatives --install "/usr/bin/javac" "javac" "/usr/lib/jvm/jdk1.7.0_45/bin/javac" 1

Таким образом, вы устанавливаете новый jdk в качестве альтернативы исходному. Затем вы можете выбрать, какой из них вы хотите использовать:

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

Вам будет предложено выбрать, какой jdk вы хотите использовать, в моей системе:

There are 2 choices for the alternative java (providing /usr/bin/java).

  Selection    Path                                           Priority   Status
------------------------------------------------------------
  0            /usr/lib/jvm/java-6-openjdk-i386/jre/bin/java   1061      auto mode
  1            /usr/lib/jvm/java-6-openjdk-i386/jre/bin/java   1061      manual mode
* 2            /usr/lib/jvm/java-7-openjdk-i386/jre/bin/java   1051      manual mode

Press enter to keep the current choice[*], or type selection number: 

В любой момент вы можете увидеть, какие альтернативы у вас есть для java или javac с помощью опции --list:

sudo update-alternatives --list java
sudo update-alternatives --list javac

Чтобы просмотреть дополнительные параметры, просмотрите справочную страницу update-alternatives.

Ответ 2

Возможно, вы захотите сделать

export PATH=/usr/lib/jvm/jdk1.7.0_45/bin:$PATH

OpenJDK, вероятно, все еще находится на пути, и Linux будет использовать первый найденный java.

Если вам это не нужно, я бы рекомендовал удалить OpenJDK.

Ответ 3

Попробуйте ввести следующее в терминале.

sudo update-alternatives --config java

Выход будет выбором, и вы можете выбрать правильный, который установлен на ваш компьютер.

Ответ 4

Запуск команды в терминале:

sudo update-alternatives --config java 

из командной строки, чтобы установить версию JRE, которую вы хотите использовать как доступную версию установки java: 1.6 и 1.8
См. Ниже:

введите описание изображения здесь

и выберите 1 вариант и установите версию java-6, потому что уже существующий выбор установлен в java-8.

Ответ 5

Запустить

sudo  update-java-alternatives --list

чтобы перечислить все установки Java на машине по имени и каталогу, а затем запустите

sudo  update-java-alternatives --set [JDK/JRE name e.g. java-8-oracle]

чтобы выбрать, какой JRE/JDK использовать.

Если вы хотите использовать разные JDK/JRE для каждой задачи Java, вы можете запускать альтернативы обновлений для настройки одного исполняемого файла Java за раз; вы можете запустить

sudo  update-alternatives --config java[Tab]

чтобы увидеть команды Java, которые можно настроить (java, javac, javah, javaws и т.д.). И затем

sudo  update-alternatives --config [javac|java|javadoc|etc.]

свяжет эту задачу/команду Java с конкретным JDK/JRE.

Вам также может потребоваться установить JAVA_HOME для некоторых приложений: из этого ответа вы можете использовать

export JAVA_HOME=$(readlink -f /usr/bin/java | sed "s:bin/java::")

для JRE или

export JAVA_HOME=$(readlink -f /usr/bin/java | sed "s:jre/bin/java::")

для JDK.