Как установить openjdk 7 на Ubuntu 16.04 или новее?

92

Я хотел бы обновить мою основную систему до 16.04, но я работаю над проектами, требующими OpenJDK 7.

По-видимому, он недоступен из тривиального apt-get install openjdk-7-jdk . В репозитории перечислены только версии 8 и 9.

Может ли кто-нибудь указать мне инструкции по его установке?

    
задан onairda 23.04.2016 в 12:18
источник

6 ответов

124

Я нашел следующие инструкции, которые работали для меня:

sudo add-apt-repository ppa:openjdk-r/ppa  
sudo apt-get update   
sudo apt-get install openjdk-7-jdk  

Это определяет «PPA для OpenJDK uploads (limited)» в качестве дополнительной репозитории пакета, обновляет вашу информацию и устанавливает пакет с его зависимостями (из этого репозитория).

    
ответ дан onairda 24.04.2016 в 00:34
39

Не похоже, что поддерживающий openjdk-r / ppa будет обновлять пакет openjdk-7 за пределами версии 7u95-2.6.4-3. Описание этого пакета «Скопировано из debian экспериментального в Primary Archive для Debian GNU / Linux» дает нам ключ к тому, как справиться с этим сами.

Вариант 1: Ручная установка

  1. Загрузите пакеты, предназначенные для вашей архитектуры:
    (для большинства пользователей это означает, что amd64, если 64 бит или i386, если установлен 32-разрядный Ubuntu)

  2. (Попытка) установить пакеты с помощью dpkg :

    sudo dpkg -i openjdk-7-* libjpeg62-turbo* libfontconfig1* fontconfig-config*
    
  3. Проверьте выход из dpkg . Если были проблемы с зависимостью, что, скорее всего, вы увидите следующее (с заменой вашей архитектуры на amd64):

      

    При обработке были обнаружены ошибки:
      OpenJDK-7-JRE: amd64
      OpenJDK-7-JRE-обезглавленное: amd64
      OpenJDK-7-JDK: amd64

    Если не было проблем с зависимостями, отлично, все готово, перейдите к # 4. В противном случае, если вам нужно решить некоторые проблемы с зависимостями, это будет выполняться с помощью:

    sudo apt install -f
    

    Обратите внимание, что нет необходимости повторно запускать dpkg после разрешения apt разрешать зависимости. Он автоматически завершит установку пакетов openjdk.

  4. Обновите альтернативы java. Вы можете просмотреть все установленные версии java с update-java-alternatives --list . Чтобы активировать OpenJDK Java 1.7, запустите:

    sudo update-java-alternatives -s java-1.7.0-openjdk-amd64
    

    Возможно, вы заметили ошибку в том, что плагин IcedTeaPlugin.so недоступен. Это не актуально для разработчиков, работающих с JDK.

  5. Проверка работы java:

    java -version
    

    , который должен выводить нечто похожее на:

      

    версия java "1.7.0_121"
      Рабочая среда OpenJDK (IcedTea 2.6.8) (7u121-2.6.8-1)
      64-разрядная серверная версия OpenJDK (сборка 24.121-b00, смешанный режим)

Вариант 2. Автоматическая установка (включая обновления с apt )

Pinning можно использовать для установки и обновления openjdk-7 и libjpeg62-turbo (зависимостей) из репозиториев Debian.

  1. Установите брелок Debian:

    sudo apt install debian-archive-keyring
    
  2. Добавьте необходимые репозитории:

    sudo add-apt-repository 'deb http://httpredir.debian.org/debian experimental main'
    sudo add-apt-repository 'deb http://httpredir.debian.org/debian sid main'
    

    Почему бы не использовать стабильный репозиторий Debian? Вы столкнетесь с неудовлетворительными зависимостями с стабильностью Debian. Экспериментальные (для openjdk-7) и sid (для libjpeg62-turbo) репозитории более мягкие с версиями зависимостей.

  3. Создайте файл пиннинга, который сообщает apt рассматривать только интересующие нас пакеты (мы, разумеется, не хотим, чтобы весь дистрибутив Ubuntu «обновлялся» с помощью экспериментальных пакетов Debian).

    Создайте файл /etc/apt/preferences.d/debian с содержимым ниже. Вам понадобятся привилегии суперпользователя, поэтому используйте один из sudo vim , sudo nano , gksudo gedit и т. Д.

    Package: *
    Pin: release o=Debian,n=experimental
    Pin-Priority: -1
    
    Package: *
    Pin: release o=Debian,n=sid
    Pin-Priority: -1
    
    Package: openjdk-7-jdk
    Pin: release o=Debian,n=experimental
    Pin-Priority: 500
    
    Package: openjdk-7-jre
    Pin: release o=Debian,n=experimental
    Pin-Priority: 500
    
    Package: openjdk-7-jre-headless
    Pin: release o=Debian,n=experimental
    Pin-Priority: 500
    
    Package: libjpeg62-turbo
    Pin: release o=Debian,n=sid
    Pin-Priority: 500
    
    Package: libfontconfig1
    Pin: release o=Debian,n=sid
    Pin-Priority: 500
    
    Package: fontconfig-config
    Pin: release o=Debian,n=sid
    Pin-Priority: 500
    
  4. Обновить apt cache (ожидайте, что это займет некоторое время, поскольку списки пакетов Debian большие):

    sudo apt update
    
  5. Установите openjdk-7-jdk:

    sudo apt install openjdk-7-jdk
    
  6. Обновите альтернативы java. Вы можете просмотреть все установленные версии java с update-java-alternatives --list . Чтобы активировать OpenJDK Java 1.7, запустите:

    sudo update-java-alternatives -s java-1.7.0-openjdk-amd64
    

    Возможно, вы заметили ошибку в том, что плагин IcedTeaPlugin.so недоступен. Это не актуально для разработчиков, работающих с JDK.

  7. Проверка работы java:

    java -version
    

    , который должен выводить нечто похожее на:

      

    версия java "1.7.0_121"
      Рабочая среда OpenJDK (IcedTea 2.6.8) (7u121-2.6.8-1)
      64-разрядная серверная версия OpenJDK (сборка 24.121-b00, смешанный режим)

ответ дан MDMower 27.07.2016 в 16:51
4

Вы можете загрузить OpenJDK 7 из Azul, который может соответствовать вашим потребностям. Оба они имеют DEB (для системы пакетов) и ZIP-дистрибутив. Я работал только с дистрибутивом ZIP.

Ссылка

    
ответ дан Thorbjørn Ravn Andersen 23.10.2016 в 21:10
0

Установите Java 7 на Ubuntu 16.04, Ubuntu 17.04

Рекомендуется установить Oracle Java , поскольку он имеет преимущество перед OpenJDK . По этой причине я хочу опубликовать альтернативу. Если вы хотите установить Oracle Java, выполните следующие команды в терминале, чтобы установить его из PPA.

  1. Добавьте необходимые репозитории:

    sudo add-apt-repository ppa:webupd8team/java
    
  2. Обновить кэш apt и установить oracle-java7 :

    sudo apt update
    sudo apt install java-common oracle-java7-installer
    

    В процессе установки вам необходимо принять соглашение Oracle License . После установки нам нужно установить переменные среды Java, такие как JAVA_HOME

  3. Исправить переменные среды Java.

    sudo apt install oracle-java7-set-default
    source /etc/profile
    
  4. Проверка работы java:

    java -version
    

    , который должен выводить нечто похожее на:

    java version "1.7.0_80"
    Java(TM) SE Runtime Environment (build 1.7.0_80-u80)
    Java HotSpot(TM) 64-Bit Server VM (build 25.131-u80, mixed mode)
    
ответ дан Teocci 26.06.2017 в 19:17
0

Альтернатива Oracle JDK:

Я хотел избежать усилий с репозиториями, потому что я переключаюсь между 7, 8 и 9, поэтому я оказался в Oracle JDK, а не в OpenJDK. Загружен из официального сайта . Я не уверен, содержит ли последняя сборка 80 те же исправления, что и OpenJDK build 161. Но у меня есть это для разработки, так что это не значит, что мне все равно.

Затем вам нужно установить $JAVA_HOME в среде, чтобы различные скрипты подбирали правильный JDK (например, Maven, JBoss и т. д.).

Для полноты JDK-версия 7 была EOL'ed, даже Общественная поддержка JDK 8 прекращается с сентября 2017 года и не будет публичных обновлений после сентября 2018 года.

    
ответ дан Ondra Žižka 19.11.2017 в 17:58
-2

Легкий способ:

Добавьте эти строки в: /etc/apt/sources.list :

deb http://security.ubuntu.com/ubuntu trusty main restricted universe multiverse
deb http://security.ubuntu.com/ubuntu trusty-security main restricted universe multiverse

Затем обновите apt и установите. Вероятно, вам придется отказаться от пакета tzdata .

После этого я рекомендую прокомментировать эти строки и apt update снова, чтобы предотвратить установку или обновление пакетов из этого репозитория (что может привести к неожиданному поведению).

Одна из проблем заключается в том, что вам необходимо удерживать эти пакеты, чтобы они не удалялись при обновлении вашей системы (особенно в пакете tzdata ).

ПРИМЕЧАНИЕ . Используйте этот метод в качестве последнего средства, предпочитайте любые другие, которые позволят вам обновлять без проблем.

    
ответ дан lepe 05.12.2016 в 10:29