Ubuntu: OpenJDK 8-не удается найти пакет
Итак, я только что установил Ubuntu, и это мой первый раз, когда я работаю в среде Linux, поэтому несите мой noobishness здесь.
в любом случае, я загрузил 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. Спасибо.
Edit:
Итак, теперь у меня новая проблема. Я установил OpenJDK 7, он пришел с Maven и только что установлен, прежде чем я понял, что получаю сделку два за один. Теперь у меня есть JDK 7, и Eclipse, и Maven, и все они работают, но я застрял на JDK 7, а не на 8.
я увидел, что там ссылка ниже, я намерен проверить его утром, 2 часа ночи и я устал. Любые другие советы по этому новому вопросу будут оценены, иначе я обязательно проверю эту ссылку первым делом утром.
3 ответа:
обновление: установка без привилегий root ниже
я советую вам не устанавливать пакеты вручную в системе ubuntu, если уже есть (полуофициальный) репозиторий, способный решить вашу проблему. Кроме того, используйте Oracle JDK для разработки, чтобы избежать (очень спорадических) проблем совместимости (я пробовал много лет назад, теперь это, безусловно, лучше).
добавить webupd8 repo в вашем система:
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. Затем вы можете использовать команду обновление-java-альтернативы для переключения между установленной версии:
# 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
для установки сертифицированного openjdk zulu: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
глоссарий команд
судо
<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|...]
: это обработчик пакетов командной строки используется для манипулирования state каждого репозитория в системе (установка / обновление / Обновление можно рассматривать как изменение текущего состояния репозитория).в нашем случае: С помощью команды
sudo add-apt-repository ppa:webupd8team/java
мы сообщаем системе, что следующее обновление репозитория должно также получить информацию о пакетах из репозитория webupd8.С
sudo apt-get update
мы фактически обновляем системный репозиторий (все эти операции требуют привилегии суперпользователя, поэтому мы добавляем судо к командам).
sudo apt-get install oracle-java8-installer
обновление-java-альтернативы (конкретная версия java обновление-альтернатив): в Ubuntu несколько пакетов обеспечивают одинаковую функциональность (просмотр интернета, компиляция почты, редактирование текстового файла или предоставление исполняемых файлов java/javac...). Позволяет системе выбрать инструмент избранное пользователя с учетом конкретной задачи механизм используя ссылки под это. Попробуйте обновить jdk, как указано выше (переключение между java 7 и java 8) и посмотреть, как изменить вывод этой команды:
ls -l /etc/alternatives/java*
в нашем случае:
sudo update-java-alternatives --set java-8-oracle
обновить символические ссылки в разделе/etc / alternatives для указания на исполняемые файлы java-8-oracle.дополнительно:
человек
<command>
: начать использовать человек, чтобы прочитать действительно хорошо написанную и подробную справку по (почти) каждой команде оболочки и ее параметрам (каждая команда, которую я упоминаю в этом небольшом ответе, имеет man-страницу, попробуйтеman update-java-alternatives
).apt-cache
search <search_key>
: запрос кэша APT для поиска пакета, связанного с предоставленным ключом search_key (может быть именем пакета или некоторым словом в описании пакета).apt-cache
show <package>
: обеспечивает APT информация для конкретного пакета (версия пакета, установлена или нет, описание).
как вы можете видеть, у меня установлена только 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
бонус добавлен (как переключаться между различными версиями)
- выполните команду follwing из терминала:
sudo update-alternatives --config java
There are 2 choices for the alternative java (providing /usr/bin/java). Selection Path Priority Status ------------------------------------------------------------ 0 /usr/lib/jvm/java-7-openjdk-amd64/jre/bin/java 1071 auto mode 1 /usr/lib/jvm/java-7-openjdk-amd64/jre/bin/java 1071 manual mode * 2 /usr/lib/jvm/java-8-openjdk-amd64/jre/bin/java 1069 manual mode Press enter to keep the current choice[*], or type selection number:
как вы можете видеть я запуск открытого 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