Итак, я только что установил Ubuntu, и это мой первый раз, когда я работаю в среде Linux, так что потерпите мою глупость.
В любом случае, я загрузил Java 8 JDK прямо из Oracle, но я понимаю, что существует также OpenJDK для Java 8. У меня два вопроса.
В чем разница между версией Oracle и OpenJDK. За и против?
Когда я пытаюсь получить OpenJDK 8, я не могу. Я вставляю команду терминала и получаю сообщение об ошибке, надеясь на совет. Опять же, очень новичок в Linux, на данный момент я был на моем первом дистрибутиве Linux менее часа.
user@computer:~/Java$ sudo apt-get install openjdk-8-jdk Reading package lists... Done Building dependency tree Reading state information... Done E: Unable to locate package openjdk-8-jdk
Любая помощь будет оценена. А пока я просто воспользуюсь пакетом Oracle. Спасибо.
Редактировать:
Итак, теперь у меня возникла новая проблема. Я установил OpenJDK 7, он поставляется с Maven и только что установлен, прежде чем я понял, что получаю сделку «два по цене одного». Теперь у меня есть JDK 7, Eclipse и Maven, и все они работают, но я застрял на JDK 7, а не на 8.
Я увидел, что внизу есть ссылка, собираюсь проверить утром, сейчас 2 часа ночи, и я сейчас устал. Мы будем благодарны за любые другие советы по этому новому выпуску, иначе я обязательно проверю эту ссылку утром первым делом.
Ответы:
ОБНОВЛЕНИЕ : установка без root прав ниже
Я советую вам не устанавливать пакеты вручную в системе ubuntu, если уже существует (полуофициальный) репозиторий, способный решить вашу проблему. Кроме того, используйте Oracle JDK для разработки, чтобы избежать (очень спорадических) проблем с совместимостью (я пробовал много лет назад, теперь, безусловно, лучше).
Добавьте репозиторий webupd8 в вашу систему:
Установите предпочитаемую версию jdk (доступны версии от java-6 до java-9):
Вы также можете установить несколько версий 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
установили:Если вы используете более старую версию Ubuntu:
Установка 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 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 для определенного пакета (версия пакета, установленная или нет, описание).источник
apt-get install software-properties-common
. Я обновлю сообщение, чтобы включить это требование. СпасибоКак видите, у меня установлена только java 1.7 (на машине Ubuntu 14.04).
update-java-alternatives -l java-1.7.0-openjdk-amd64 1071 /usr/lib/jvm/java-1.7.0-openjdk-amd64
Чтобы установить Java 8, я сделал,
sudo add-apt-repository ppa:openjdk-r/ppa sudo apt-get update sudo apt-get install openjdk-8-jdk
Впоследствии, теперь у меня есть Java 7 и 8,
update-java-alternatives -l java-1.7.0-openjdk-amd64 1071 /usr/lib/jvm/java-1.7.0-openjdk-amd64 java-1.8.0-openjdk-amd64 1069 /usr/lib/jvm/java-1.8.0-openjdk-amd64
БОНУС ДОБАВЛЕН (как переключаться между разными версиями)
Как видите, я использую open jdk 8. Чтобы переключиться на jdk 7, нажмите
1
и ударьте Enterклавишу. Проделайте то же самоеjavac
сsudo update-alternatives --config javac
,.Проверьте версии, чтобы подтвердить изменение:
java -version
иjavac -version
.источник
Я получаю OpenJDK 8 из официальных репозиториев Debian, а не из какого-то случайного PPA или несвободного двоичного файла Oracle. Вот как я это сделал:
sudo apt-get install debian-keyring debian-archive-keyring
Сделать
/etc/apt/sources.list.d/debian-jessie-backports.list
:deb http://httpredir.debian.org/debian/ jessie-backports main
Сделать
/etc/apt/preferences.d/debian-jessie-backports
:Package: * Pin: release o=Debian,a=jessie-backports Pin-Priority: -200
Затем, наконец, выполните установку:
sudo apt-get update sudo apt-get -t jessie-backports install openjdk-8-jdk
источник
update-alternatives --config java ;-)
sudo apt-get update sudo apt-get install openjdk-8-jdk
это должно работать
источник
У меня была такая же проблема, и я попробовал все решения на этой странице, но ни одно из них не помогло.
Наконец, сработало добавление
universe
репо в мой список репо. Для этого выполните следующую командуПосле выполнения указанной выше команды я смог запустить
sudo apt install openjdk-8-jre
без проблем, и пакет был установлен.
Надеюсь, это кому-то поможет.
источник
После добавления
JDK
репо перед установкой вы можете сначала запустить обновление, чтобы можно было добавить репо.apt update
а затем продолжите установку
sudo apt install adoptopenjdk-8-hotspot
источник