Como instalo o openjdk 7 no Ubuntu 16.04 ou superior?

100

Eu gostaria de atualizar meu sistema principal para 16.04, mas eu trabalho em projetos que requerem o OpenJDK 7.

Aparentemente, não está disponível a partir de um apt-get install openjdk-7-jdk trivial. Apenas as versões 8 e 9 são listadas no repositório.

Alguém pode me indicar instruções sobre como instalá-lo?

    
por onairda 23.04.2016 / 12:18

6 respostas

133

Eu encontrei as seguintes instruções que funcionaram para mim:

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

Isso define o “PPA para uploads do OpenJDK (restrito)” como um repositório de pacotes adicional, atualiza suas informações e instala o pacote com suas dependências (daquele repositório).

    
por onairda 24.04.2016 / 00:34
44

Não parece que o mantenedor do openjdk-r / ppa esteja atualizando o pacote openjdk-7 além da versão 7u95-2.6.4-3. A descrição do pacote "Copiado do debian experimental no Arquivo Primário para Debian GNU / Linux" nos dá uma pista sobre como lidar com isso nós mesmos.

Opção 1: instalação manual

  1. Baixe os pacotes destinados à sua arquitetura:
    (para a maioria dos usuários, isso significa amd64 se 64bit ou i386 se 32bit Ubuntu estiver instalado)

  2. (tenta instalar) os pacotes usando dpkg :

    Ubuntu 17.10 e anteriores:

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

    Ubuntu 18.04 e posterior:

    sudo dpkg -i openjdk-7-* libjpeg62-turbo*
    
  3. Verifique a saída de dpkg . Se houver problemas de dependência - o que é provável - você verá o seguinte (com sua arquitetura substituída por amd64):

    Errors were encountered while processing:
    openjdk-7-jre:amd64
    openjdk-7-jre-headless:amd64
    openjdk-7-jdk:amd64

    Se não houver problemas de dependência, ótimo, pronto, pule para o número 4. Caso contrário, se você precisar resolver alguns problemas de dependência, isso será tratado com:

    sudo apt install -f
    

    Observe que não é necessário executar novamente dpkg depois de deixar apt resolver dependências. Ele terminará automaticamente a instalação dos pacotes openjdk.

  4. Atualize as alternativas em java. Você pode visualizar todas as versões do java instaladas com update-java-alternatives --list . Para ativar o OpenJDK Java 1.7, execute:

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

    Você pode perceber um erro sobre a indisponibilidade do IcedTeaPlugin.so plugin. Esta não é uma preocupação real para os desenvolvedores que trabalham com o JDK.

  5. Verifique se o Java está funcionando:

    java -version
    

    que deve produzir algo semelhante a:

    java version "1.7.0_161"
    OpenJDK Runtime Environment (IcedTea 2.6.12) (7u161-2.6.12-1)
    OpenJDK 64-Bit Server VM (build 24.161-b01, mixed mode)

Opção 2: instalação automática (incluindo atualizações com apt )

Pinning pode ser utilizado para instalar e atualizar o openjdk-7-jdk e suas dependências de repositórios Debian.

  1. Crie um arquivo de fixação que diga ao apt para considerar apenas os pacotes que nos interessam (certamente não queremos que nossa distribuição inteira do Ubuntu seja "atualizada" com pacotes experimentais Debian).

    Crie o arquivo /etc/apt/preferences.d/debian com o conteúdo abaixo. Você precisará de privilégios de superusuário, então use um dos sudo vim , sudo nano , gksudo gedit , etc.

    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
    

    Para o Ubuntu 17.10 e versões anteriores, anexe também o seguinte:

    Package: libfontconfig1
    Pin: release o=Debian,n=sid
    Pin-Priority: 500
    
    Package: fontconfig-config
    Pin: release o=Debian,n=sid
    Pin-Priority: 500
    
  2. Instale o chaveiro do Debian:

    sudo apt install debian-archive-keyring
    

    Nota: embora este seja o método mais simples de adicionar o chaveiro do debian, ele pode não estar atualizado. Verifique a saída como a seguinte ao executar apt update na etapa 4:

    W: GPG error: http://cdn-fastly.deb.debian.org/debian experimental InRelease: The following signatures couldn't be verified because the public key is not available: NO_PUBKEY 8B48AD6246925553 NO_PUBKEY 7638D0442B90D010
    E: The repository 'http://httpredir.debian.org/debian experimental InRelease' is not signed.

    Se vir este erro, adicione manualmente as chaves necessárias com:

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

    onde 8B48AD6246925553 e 7638D0442B90D010 devem corresponder aos pubkeys que você vê na mensagem de aviso.

  3. Adicione os repositórios necessários:

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

    Por que não usar um repositório Debian estável? Você vai se deparar com dependências insatisfeitas com o Debian estável. Os repositórios experimentais (para openjdk-7) e sid (para libjpeg62-turbo, libfontconfig1 e fontconfig-config) são mais lenientes com versões de dependência.

  4. Atualize apt cache (espere que isso demore um pouco desde que as listas de pacotes do Debian são grandes):

    sudo apt update
    
  5. Instale o openjdk-7-jdk:

    sudo apt install openjdk-7-jdk
    
  6. Atualize as alternativas em java. Você pode visualizar todas as versões do java instaladas com update-java-alternatives --list . Para ativar o OpenJDK Java 1.7, execute:

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

    Você pode perceber um erro sobre a indisponibilidade do IcedTeaPlugin.so plugin. Esta não é uma preocupação real para os desenvolvedores que trabalham com o JDK.

  7. Verifique se o Java está funcionando:

    java -version
    

    que deve produzir algo semelhante a:

    java version "1.7.0_161"
    OpenJDK Runtime Environment (IcedTea 2.6.12) (7u161-2.6.12-1)
    OpenJDK 64-Bit Server VM (build 24.161-b01, mixed mode)
por MDMower 27.07.2016 / 16:51
5

Você pode baixar um OpenJDK 7 da Azul que pode atender às suas necessidades. Ambos têm um DEB (para o sistema de pacotes) e uma distribuição ZIP. Eu só trabalhei com a distribuição ZIP.

link

    
por Thorbjørn Ravn Andersen 23.10.2016 / 21:10
0

Instale o Java 7 no Ubuntu 16.04, Ubuntu 17.04

É recomendável instalar o Oracle Java , porque ele tem uma vantagem de desempenho em relação ao OpenJDK . Por essa razão, quero postar uma alternativa. Se você deseja instalar o Oracle Java, execute os seguintes comandos no terminal para instalá-lo a partir do PPA.

  1. Adicione os repositórios necessários:

    sudo add-apt-repository ppa:webupd8team/java
    
  2. Atualize o apt cache e instale o oracle-java7 :

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

    Durante o processo de instalação, você precisará aceitar o contrato da Licença Oracle . Uma vez instalado, precisamos definir variáveis de ambiente Java, como JAVA_HOME

  3. Corrigir variáveis de ambiente Java.

    sudo apt install oracle-java7-set-default
    source /etc/profile
    
  4. Verifique se o Java está funcionando:

    java -version
    

    que deve produzir algo semelhante a:

    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)
    
por Teocci 26.06.2017 / 19:17
0

Alternativa do Oracle JDK:

Eu queria evitar o esforço com os repositórios, porque alterno entre 7, 8 e 9, então acabei com o Oracle JDK em vez do OpenJDK. Download do site oficial . Eu não tenho certeza se a última versão 80 contém as mesmas correções que a versão 161 do OpenJDK. Mas eu a tenho para desenvolvimento, então isso não significa muito para mim.

Em seguida, você precisa definir $JAVA_HOME no ambiente para que vários scripts capturem o JDK correto (por exemplo, Maven, JBoss, etc.).

Para completar, a versão 7 do JDK foi colocada em EOL, mesmo suporte público ao JDK 8 sendo encerrado desde setembro de 2017 e não receberá atualizações públicas após setembro de 2018.

    
por Ondra Žižka 19.11.2017 / 17:58
-2

Um jeito fácil é:

Adicione estas linhas a: /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

Em seguida, atualize o apt e instale. Você provavelmente precisará fazer o downgrade de tzdata package.

Depois disso, recomendo que comente essas linhas e atualize o apt novamente para impedir a instalação ou atualização de pacotes desse repositório (o que pode levar a um comportamento inesperado).

Um problema é que você precisa manter esses pacotes para que eles não sejam removidos quando você atualizar seu sistema (especialmente tzdata package).

OBSERVAÇÃO : use este método como último recurso, prefira qualquer outro que permita a atualização sem problemas.

    
por lepe 05.12.2016 / 10:29

Tags