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.