ОБНОВЛЕНИЕ : установка без root прав ниже
Я советую вам не устанавливать пакеты вручную в системе ubuntu, если уже существует (полуофициальный) репозиторий, способный решить вашу проблему. Кроме того, используйте Oracle JDK для разработки, чтобы избежать (очень спорадических) проблем с совместимостью (я пробовал много лет назад, теперь, безусловно, лучше).
Добавьте репозиторий webupd8 в вашу систему:
sudo add-apt-repository ppa:webupd8team/java
sudo apt-get update
Установите предпочитаемую версию jdk (доступны версии от java-6 до java-9):
sudo apt-get install oracle-java8-installer
Вы также можете установить несколько версий jdk, смешивая версии openjdk и oracle. Затем вы можете использовать команду update-java-alternatives для переключения между установленной версией:
# list available jdk
update-java-alternatives --list
# use jdk7
sudo update-java-alternatives --set java-7-oracle
# use jdk8
sudo update-java-alternatives --set java-8-oracle
Требования
Если вы add-apt-repository: command not found
обязательно software-properties-common
установили:
sudo apt-get install software-properties-common
Если вы используете более старую версию Ubuntu:
sudo apt-get install python-software-properties
Установка JDK без прав root
Если у вас нет прав администратора на целевой машине, проще всего использовать sdkman
для установки сертифицированного zulu openjdk:
curl -s "https://get.sdkman.io" | bash
source "$HOME/.sdkman/bin/sdkman-init.sh"
sdk install java
ПРИМЕЧАНИЕ : sdkman позволяет также установить официальный Oracle JDK, хотя это не вариант по умолчанию. Просмотреть доступные версии с:
sdk ls java
Установите выбранную версию с помощью:
sdk install java <version>
Например:
sdk install java 9.0.1-oracle
Глоссарий команд
sudo <command> [command_arguments]
: выполнить команду с привилегиями суперпользователя.
add-apt-repository <PPA_id>
: Ubuntu (как и все производные Debian и, вообще говоря, каждый дистрибутив Linux) имеет основной репозиторий пакетов, который обрабатывает такие вещи, как зависимости пакетов и обновление. В Ubuntu можно расширить основной репозиторий с помощью PPA (Personal Package Archive), который обычно содержит пакеты, недоступные в системе (как и oracle jdk), или обновленные версии доступных (пример: LibreOffice 5 в LTS доступен только через это PPA ).
apt-get [install|update|upgrade|purge|...]
: это «» обработчик пакетов командной строки, используемый для управления состоянием каждого репозитория в системе (установку / обновление / обновление можно рассматривать как изменение текущего состояния репозитория).
В нашем случае : с помощью команды sudo add-apt-repository ppa:webupd8team/java
мы информируем систему, что следующее обновление репозитория должно получить информацию о пакетах также из репозитория webupd8.
При этом sudo apt-get update
мы фактически обновляем системный репозиторий (для всех этих операций требуются привилегии суперпользователя, поэтому мы добавляем sudo к командам).
sudo apt-get install oracle-java8-installer
update-java-alternatives (конкретная java-версия альтернатив-обновлений ): в Ubuntu несколько пакетов предоставляют одинаковые функции (просмотр в Интернете, компиляция писем, редактирование текстового файла или предоставление исполняемых файлов java / javac ...). Для того, чтобы система позволяет выбрать инструмент избранных пользователей с учетом конкретной задачей механизма с использованием символических ссылок под /etc/alternatives/
используются. Попробуйте обновить jdk, как указано выше (переключитесь между java 7 и java 8), и посмотрите, как изменить вывод этой команды:
ls -l /etc/alternatives/java*
В нашем случае : sudo update-java-alternatives --set java-8-oracle
обновите символические ссылки в / etc / alternatives, чтобы они указывали на исполняемые файлы java-8-oracle.
Дополнительно:
man <command>
: начните использовать man, чтобы прочитать действительно хорошо написанную и подробную справку по (почти) каждой команде оболочки и ее параметрам (каждая команда, которую я упоминаю в этом небольшом ответе, имеет справочную страницу, попробуйте man update-java-alternatives
).
apt-cache search <search_key>
: запросить кеш APT для поиска пакета, связанного с предоставленным ключом search_key (может быть именем пакета или некоторым словом в описании пакета).
apt-cache show <package>
: предоставляет информацию APT для определенного пакета (версия пакета, установленная или нет, описание).