it-swarm.com.ru

Ubuntu: OpenJDK 8 - Невозможно найти пакет

Итак, я только что установил Ubuntu, и я впервые работаю в среде Linux, так что терпите мою нелюбовь здесь.

В любом случае, я скачал Java 8 JDK напрямую из Oracle, но я понимаю, что есть также OpenJDK для Java 8. У меня два вопроса.

  1. В чем разница между версией Oracle и OpenJDK. За и против?

  2. Когда я пытаюсь получить OpenJDK 8, я не могу. Я вставляю команду терминала и получаю сообщение об ошибке, надеясь на совет. Опять же, новичок в Linux, здесь я был в моем первом дистрибутиве Linux меньше часа.

    [email protected]:~/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 часа ночи, и я устал сейчас. Буду признателен за любые другие советы по этому новому вопросу, в противном случае я обязательно проверю эту ссылку первым делом с утра.

71
user2223059

UPDATE: установка без прав 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

NOTE: 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) имеет основной репозиторий пакетов, который обрабатывает такие вещи, как package зависимости и обновления. В 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-альтернативы (конкретная Java версия update-альтернативы ): в 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, чтобы прочитать действительно хорошо написанную и подробную справку по (почти) каждой команде Shell и ее параметрам (каждой команде, о которой я упомяну маленький ответ имеет справочную страницу, попробуйте man update-Java-alternatives).

  • apt-cache search <search_key>: запросить кеш APT для поиска пакета, связанного с предоставленным ключом search_key (может быть именем пакета или какое-то слово в описании пакета).

  • apt-cache show <package>: предоставляет APT информацию для определенного пакета (версия пакета, установлена ​​или нет, описание).

103
Giuseppe Ricupero

Как видите, у меня установлено только 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

БОНУС ДОБАВЛЕН (как переключаться между разными версиями)

  • запустите следующую команду из терминала:

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:

Как вы видите, я запускаю open jdk 8. Чтобы переключиться на jdk 7, нажмите 1 и нажмите Enter ключ. Сделайте то же самое для javac, а также с Sudo update-alternatives --config javac.

Проверьте версии, чтобы подтвердить изменение: Java -version и javac -version.

77
samsamara

Я получаю 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
14
Hans-Christoph Steiner
Sudo apt-get update
Sudo apt-get  install openjdk-8-jdk

это должно работать

0
ahmed emad