При установке Studio Android на Ubuntu 14.04 я получаю сообщение что моя версия Java (javac 1.7.0_79
) вызывает проблемы. Я нашел решение того, как установить более новую версию Oracle Java:
sudo apt-add-repository ppa:webupd8team/java
sudo apt-get update
sudo apt-get install oracle-java8-installer
Однако я боюсь, что это могло бы перезаписать мое существующее open-jdk
версия Java. Так как я не знаю, какая из моих программ зависит от Java, я боюсь, что это могло разрушить эти другие программы.
Есть ли способ удостовериться apt-get
не перезаписывает мой предыдущий Java? Я в основном хотел бы установить обоих и смог бы переключиться между ними вручную, в зависимости от того, в какой версии я нуждаюсь.
Кв. - добирается, не перезапишет существующие версии Java.
Для переключения между установленными версиями Java используйте эти update-java-alternatives
команда.
Список все версии Java:
update-java-alternatives --list
Установленная по умолчанию версия Java (нуждается в корневых полномочиях):
sudo update-java-alternatives --set /path/to/java/version
..., где /path/to/java/version
один из перечисленных предыдущей командой (например, /usr/lib/jvm/java-7-openjdk-amd64
).
update-java-alternatives
инструмент удобства, который использует Debian система альтернатив (update-alternatives
) для установки набора ссылок на указанную версию Java (например, java
, javac
...).
Используйте
sudo update-alternatives --config java
, который перечисляет все установленные версии с текущей активной отмеченной и обеспечивает диалоговое окно для переключения:
There are 3 choices for the alternative java (providing /usr/bin/java).
Selection Path...
------------------------------------------------------------
0 /usr/lib/jvm/java-9-oracle/bin/java...
* 1 /usr/lib/jvm/java-7-oracle/jre/bin/java...
2 /usr/lib/jvm/java-8-oracle/jre/bin/java...
3 /usr/lib/jvm/java-9-oracle/bin/java...
Press <enter> to keep...[*], or type selection number:
Использование
export JAVA_HOME="$(jrunscript -e 'java.lang.System.out.println(java.lang.System.getProperty("java.home"));')"
для установки $JAVA_HOME
от текущей активной версии
На основе ответа от @muet я нашел, что это работало беспрепятственно:
Добавляют это к ~/.bashrc
:
export JAVA_HOME="$(jrunscript -e 'java.lang.System.out.println(java.lang.System.getProperty("java.home"));')"
Добавляют к псевдонимам:
alias useJava8='yes | sudo apt-get install oracle-java8-set-default && source ~/.bashrc'
alias useJava7='yes | sudo apt-get install oracle-java7-set-default && source ~/.bashrc'
Затем можно переключиться в той же оболочке с помощью только: useJava7
или useJava8
Можно настроить, при помощи которого версия является значением по умолчанию для использования в командной строке update-alternatives
, который справляется, какие символьные ссылки используются для различных команд.
sudo update-alternatives --config java
Вывод посмотрит что-то как следующее.
There are 5 choices for the alternative java (providing /usr/bin/java).
Selection Path Priority Status
------------------------------------------------------------
* 0 /usr/lib/jvm/java-8-openjdk-amd64/jre/bin/java 1081 auto mode
1 /usr/lib/jvm/java-6-oracle/jre/bin/java 1 manual mode
2 /usr/lib/jvm/java-7-oracle/jre/bin/java 2 manual mode
3 /usr/lib/jvm/java-8-openjdk-amd64/jre/bin/java 1081 manual mode
4 /usr/lib/jvm/java-8-oracle/jre/bin/java 3 manual mode
5 /usr/lib/jvm/java-9-oracle/bin/java 4 manual mode
Press <enter> to keep the current choice[*], or type selection number:
Можно теперь выбрать число для использования в качестве значения по умолчанию. Это может также быть сделано для других команд Java, таких как компилятор (javac
), генератор документации (javadoc
), инструмент подписания JAR (jarsigner
), и т.д. Можно использовать следующую команду, заполняя команду, которую Вы хотите настроить.
sudo update-alternatives --config command
JAVA_HOME
Переменная средыМного программ, таких как серверы Java, используют переменную среды JAVA_HOME для определения местоположения установки Java.
Скопируйте путь со своей предпочтительной установки и затем откройте/etc/environment, использующий Сублимированный текст или Ваш любимый текстовый редактор.
sudo subl /etc/environment
В конце этого файла добавьте следующую строку, удостоверившись заменять выделенный путь Вашим собственным скопированным путем.
JAVA_HOME="/usr/lib/jvm/java-8-oracle"
Сохраните и выйдите из файла и перезагрузите его: source /etc/environment
.
Можно теперь протестировать, была ли переменная среды установлена путем выполнения следующей команды: echo $JAVA_HOME
. Это возвратит путь, который Вы просто устанавливаете.
jrunscript
может быть недоступна в будущих выпусках, поэтому безопасный выбор использует
export JAVA_HOME=$(dirname $(dirname $(readlink -f $(which java)))))
, как предложено @ThiamTeck.
Кроме того, .bashrc
необходимо выполнять каждый раз, когда вы изменяете версию Java с помощью команды update-alternative
.