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


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

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

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


108
2018-04-23 10:18


происхождения


В случае, если кто-то задается вопросом, почему вы все еще хотите JDK 7, я в той же ситуации, потому что я думаю, что neo4j 2.1.6 не играет хорошо с Ubuntu 16.04, и единственное, что я вижу, может быть неправильным, это JDK. - Sridhar-Sarnobat
Вам явно требуется openjdk 7 в качестве вашей JVM системы или вам просто нужна среда выполнения Java 7. Вы можете загрузить последнюю версию из архивов Oracle. - Thorbjørn Ravn Andersen


ответы:


Предупреждение безопасности

Пакеты в PPA, упомянутые ниже, не обновляются с сохранением   патчи к Java. Не использовать в производстве; см. альтернативные ответы   вместо.

На момент написания последней была сделана последняя загрузка для OpenJDK 7   «2016-04-22» с версией 7u95 и по-прежнему доступен как «последний», где   Ubuntu 14.04 был обновлено до 7u181,


ОБНОВЛЕНИЕ: ПОЭТОМУ ЭТО САМЫЙ ГОЛОСОВАННЫЙ ОТВЕТ, КОТОРЫЙ НЕ МОЖЕТ БЫТЬ НЕ ТОЛЬКО ВЫ ХОТИТЕ ИСПОЛЬЗОВАТЬСЯ В 2018 ГОДУ, ЧТОБЫ ОТСУТСТВУЕТ ОБНОВЛЕНИЯ ОБЕСПЕЧЕНИЯ БЕЗОПАСНОСТИ ЭТОЙ ПРА.

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

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

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


137
2018-04-23 22:34



Если вы сначала ошибочно установили openjdk-8 (как и я), то после выполнения этого ответа вам нужно будет сделать sudo update-java-alternatives поэтому вы можете сделать openjdk-7 значением по умолчанию. - Rian Sanderson
FYI: В настоящее время это не работает для 16.10 - opticyclic
-1, потому что этот PPA полностью устарел и игнорирует многие важные исправления безопасности. Совершенно неприемлемо, чтобы это было установлено, imo. - gertvdijk
Также не работает 17.04. - Colin Harrington
-1 также, поскольку предлагаемый PPA ограничен и не обновляется. - delimiter


Не похоже, что сторонник 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:

    Ubuntu 17.10 и ранее:

    sudo dpkg -i openjdk-7-* libjpeg62-turbo* libfontconfig1* fontconfig-config*
    

    Ubuntu 18.04 и более поздние версии:

    sudo dpkg -i openjdk-7-* libjpeg62-turbo*
    
  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_161"
    Рабочая среда OpenJDK (IcedTea 2.6.12) (7u161-2.6.12-1)
    OpenJDK 64-разрядная серверная VM (сборка 24.161-b01, смешанный режим)

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

Закрепление могут быть использованы для установки и обновления openjdk-7-jdk и его зависимостей из репозиториев Debian.

  1. Создайте файл пиннинга, который сообщает 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
    

    Для Ubuntu 17.10 и ранее добавьте следующее (и см. Примечание внизу):

    Package: libfontconfig1
    Pin: release o=Debian,n=sid
    Pin-Priority: 500
    
    Package: fontconfig-config
    Pin: release o=Debian,n=sid
    Pin-Priority: 500
    
  2. Установите брелок Debian:

    sudo apt install debian-archive-keyring
    

    Примечание: хотя это самый простой способ добавления debian keyring, он может быть несовременным. Проверьте на выходе, как показано ниже: apt update на этапе 4:

    W: ошибка GPG: http://cdn-fastly.deb.debian.org/debian experimental InRelease: следующие подписи не могут быть проверены, поскольку открытый ключ недоступен: NO_PUBKEY 8B48AD6246925553 NO_PUBKEY 7638D0442B90D010
    E: Репозиторий 'http://httpredir.debian.org/debian экспериментальный InRelease' не подписан.

    Если вы видите эту ошибку, вручную добавьте необходимые ключи:

    sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 8B48AD6246925553
    sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 7638D0442B90D010
    

    где 8B48AD6246925553 а также 7638D0442B90D010 должен соответствовать паб-ключам, которые вы видите в предупреждающем сообщении.

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

    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, libfontconfig1 и fontconfig-config) репозитории более снисходительны к версиям зависимостей.

  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_161"
    Рабочая среда OpenJDK (IcedTea 2.6.12) (7u161-2.6.12-1)
    OpenJDK 64-разрядная серверная VM (сборка 24.161-b01, смешанный режим)

Заметки fontconfig

libfontconfig1 а также fontconfig-config должен быть обновлен до версии 2.12 или более поздней версии Ubuntu 17.10 и более ранних версий. Пакеты обновления от Debian не содержат настроек Ubuntu, поэтому некоторые приложения отображают уродливые шрифты с установленными пакетами; например Чарльз Веб-отладочный прокси. В зависимости от используемых вами программ вы можете или не можете быть затронуты этой проблемой.


47
2017-07-27 14:51



Интересный ответ, пожалуйста, обновите его, если вы найдете способ автоматического обновления этого пакета. - J.Serra
Я просто попытался установить jdk 7 на ubuntu 16.04, и это единственный способ, которым мне удалось заставить его работать. Спасибо! - link
@ J.Serra Ответ пересмотрен с автоматическим методом обновления. - MDMower
отлично ответил, особенно автоматический метод высоко ценится! спасибо за то, что нужно выяснить и записать! - steadfasterX
Автоматический метод в основном работал для меня, но также не является постоянным. Мне пришлось добавить еще два пакета в /etc/apt/preferences.d/debian (в дополнение к libjpeg62-turbo): libfontconfig1 и fontconfig-config - comodoro


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

http://www.azul.com/downloads/zulu/zulu-linux/


5
2017-10-23 19:10





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

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

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

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

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

    Во время процесса установки вам необходимо принять Лицензия Oracle соглашение. После установки нам необходимо установить переменные среды 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)
    

0
2018-06-26 17:17



Установщик oracle больше не работает. Подключение к download.oracle.com (download.oracle.com) | 184.51.150.144 |: 80 ... подключено. HTTP-запрос отправлен, ожидая ответа ... 404 Не найдено - autonomy
Для Oracle JDK компания не предлагает общественная поддержка для JDK 7 (они предлагают платную поддержку). я думаю apt-get пытается получить установщик с несуществующей страницы. - Если вам нужен JDK 7, вы можете скачать инсталляторы с сайта Archive: oracle.com/technetwork/java/javase/downloads/... - Jaime


Альтернатива 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 года.


0
2017-11-19 16:58





Использовать контейнеры

Это универсальный ответ о том, как запустить <outdated> удаленное программное обеспечение <current> Ubuntu: контейнеризировать ваше приложение,

Например, используйте Docker и более раннее базовое изображение Ubuntu, в котором программное обеспечение, которое вы ищете, все еще доступно / поддерживается.

Он также работает наоборот; попробуйте программное обеспечение на новом или даже другом дистрибутиве Linux на вашем нынешнем стабильном Ubuntu.

Пример для Java 7 с использованием Ubuntu 14.04

  1. Установите Docker - бесплатная версия Docker CE. См. Например https://docs.docker.com/install/linux/docker-ce/ubuntu/ или использовать docker.io пакет в последних версиях Ubuntu.

  2. В пустой папке создайте файл Dockerfile:

    FROM ubuntu:trusty
    RUN apt-get update \
        && apt-get install -y \
            openjdk-7-jdk \
        && rm -rf /var/lib/apt/lists/*
    
    ENTRYPOINT ["/usr/bin/java"]
    

    Добавьте дополнительные пакеты в эту команду, если вам это нужно.

  3. В этой папке выполните:

    docker build -t gertvdijk/java7 .
    
  4. Выполните команду внутри одного контейнера с использованием этого образа Java 7:

    Например. java -version:

    docker run --rm -it gertvdijk/java7 -version
    

    Вывод:

    java version "1.7.0_181"
    OpenJDK Runtime Environment (IcedTea 2.6.14) (7u181-2.6.14-0ubuntu0.1)
    OpenJDK 64-Bit Server VM (build 24.181-b01, mixed mode)
    
  5. При желании, создайте обертку для удобства.

    • Создать файл /usr/local/bin/java7-in-docker с содержанием:

      #!/usr/bin/env sh -e
      
      DOCKER_IMAGE=gertvdijk/java7
      PWD="$(pwd)"
      
      exec docker run \
        --rm -it \
        -v ${PWD}:${PWD} \
        -v "/etc/passwd:/etc/passwd:ro" \
        -v "/etc/group:/etc/group:ro" \
        --user "$(id -u):$(id -g)" \
        --workdir "${PWD}" \
        "${DOCKER_IMAGE}" \
        $@
      

      Это сделает текущую рабочую директорию доступной внутри контейнера, а не всю вашу файловую систему, и выдаст вашу локальную учетную запись пользователя в пространстве имен контейнеров.

    • Отметьте его как исполняемый файл:

      sudo chmod +x /usr/local/bin/java7-in-docker
      
  6. Запустите Java 7 прозрачно, например:

    java7-in-docker -jar relative/path/to/some.jar
    

0
2017-07-26 22:21





Добавление к ответу MDMower выше о ручной или автоматической установке. (*)

На Ubuntu 16.04.5 LTS с ядрами hwe-16.04 и Cinnamon как DE я испытал неожиданное поведение шрифта при установке / обновлении libfontconfig1 и его зависимости fontconfig-config. Внезапно у меня были странные, тонкие и едва различимые моно-пространственные шрифты и другие «уродливые» шрифты во многих меню меню, а также в терминальных окнах и во многих других местах в моих приложениях.

В случае, если вы столкнулись с этой проблемой: для этого не существует рабочего исправления во время выполнения. Нет смысла тратить свое время на поиск настроек для корректировки в любых настройках Cinnamon или Gnome или FontConfig или ваших терминалов (например, gconf-editor / gconftool, gnome-tweak-tool, fc- *). Это не повлияет на «сломанные» шрифты. Кажется, обновление Fontconfig-Config каким-то образом сбрасывает известные / кэшированные ссылки на определенные шрифты, а некоторые резервные шрифты визуализируются вместо этого, но все же ссылаются на шрифты по их первоначальному имени.

Просто перезагрузите свою систему, и все вернется к нормальной жизни. Даже просто выходить из системы и обратно возможно хватит.


(*) Это должно было быть добавлением или комментарием к вышеуказанному ответу @MDMower, но недостаточная репутация StackExchange запрещает мне публиковать его в виде комментариев. Мое редактирование было отклонено (частично по праву), а значит, этот спам «ответит». Сожалею. Я был бы рад, если бы кто-то с достаточной «силой» мог переместить этот «ответ», чтобы быть комментарием, где он принадлежит. Благодаря!


0
2017-07-27 10:55





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

Добавьте эти строки в: /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 пакет).

ЗАМЕТКА: Используйте этот метод в качестве последнего средства, предпочитайте любой другой, который позволит вам обновлять без проблем.


-2
2017-12-05 09:29