Vraag Hoe installeer ik openjdk 7 op Ubuntu 16.04 of hoger?


Ik wil mijn hoofdsysteem upgraden naar 16.04, maar ik werk aan projecten waarvoor OpenJDK 7 vereist is.

Blijkbaar is het niet beschikbaar vanaf een triviaal apt-get install openjdk-7-jdk. Alleen versies 8 en 9 worden vermeld in de repository.

Kan iemand mij wijzen op instructies voor het installeren ervan?


108
2018-04-23 10:18


oorsprong


Als iemand zich afvraagt ​​waarom je JDK 7 nog steeds wilt, zit ik in dezelfde situatie omdat ik vind dat neo4j 2.1.6 niet mooi met Ubuntu 16.04 speelt en het enige dat ik kan zien dat verkeerd zou kunnen zijn, is de JDK. - Sridhar-Sarnobat
Heb je expliciet openjdk 7 nodig als je systeem-JVM of heb je gewoon een Java 7-runtime nodig? Je kunt dit laatste downloaden uit de Oracle-archieven. - Thorbjørn Ravn Andersen


antwoorden:


Veiligheidswaarschuwing

Pakketten in de hieronder genoemde PPA zijn niet bijgewerkt met beveiliging   patches naar Java. Niet gebruiken in productie; zie alternatieve antwoorden   in plaats daarvan.

Op het moment van schrijven was de laatste upload voor OpenJDK 7 voltooid   '2016-04-22' met versie 7u95 en nog steeds beschikbaar als 'laatste', waar   Ubuntu 14.04 is geweest bijgewerkt tot 7u181.


UPDATE: HOEWEL DIT HET MEEST GESTELDE ANTWOORD IS, IS HET WAARSCHIJNLIJK NIET HET BEWIJS DAT U WILT GEBRUIKEN IN 2018 WEGENS GEBREK AAN VEILIGHEID UPDATES DOOR DEZE PPA.

Ik vond de volgende instructies die voor mij gewerkt hebben:

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

Dit definieert de "PPA voor OpenJDK-uploads (beperkt)" als een extra pakketrepository, werkt uw informatie bij en installeert het pakket met zijn afhankelijkheden (vanuit die repository).


137
2018-04-23 22:34



Als je per vergissing openjdk-8 hebt geïnstalleerd (zoals ik deed), dan moet je na het volgen van dit antwoord een sudo update-java-alternatives dus je kunt van openjdk-7 de standaard maken. - Rian Sanderson
Ter info: dit werkt momenteel niet voor 16.10 - opticyclic
-1 omdat deze PPA volledig verouderd is en veel belangrijke beveiligingspatches negeert. Helemaal onaanvaardbaar om dit te laten installeren, imo. - gertvdijk
Werkt ook niet voor 17.04. - Colin Harrington
-1 ook omdat de voorgestelde PPA Beperkt is en niet wordt bijgehouden. - delimiter


Het ziet er niet naar uit dat de onderhouder van openjdk-r / ppa het pakket openjdk-7 zal updaten naar meer dan versie 7u95-2.6.4-3. De beschrijving van dat pakket "Gekopieerd van debian-experiment in het primaire archief voor Debian GNU / Linux" geeft ons een idee hoe we dit zelf moeten aanpakken.

Optie 1: handmatige installatie

  1. Download de pakketten die voor uw architectuur zijn bedoeld:
    (voor de meeste gebruikers betekent dit amd64 als 64bit of i386 als 32bit Ubuntu is geïnstalleerd)

  2. (Poging om) de pakketten te installeren met behulp van dpkg:

    Ubuntu 17.10 en eerder:

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

    Ubuntu 18.04 en later:

    sudo dpkg -i openjdk-7-* libjpeg62-turbo*
    
  3. Controleer de uitvoer van dpkg. Als er afhankelijkheidsproblemen waren - wat waarschijnlijk is - ziet u het volgende (met uw architectuur in de plaats van amd64):

    Er zijn fouten opgetreden tijdens de verwerking:
    openjdk-7-jre: amd64
    openjdk-7-jre-headless: amd64
    openjdk-7-jdk: amd64

    Als er geen afhankelijkheidsproblemen waren, goed, bent u klaar, ga dan naar # 4. Anders, als u een aantal afhankelijkheidsproblemen moet oplossen, wordt dit afgehandeld met:

    sudo apt install -f
    

    Let op, het is niet nodig om opnieuw uit te voeren dpkg na het verhuren apt afhankelijkheden oplossen. Het beëindigt automatisch de installatie van de openjdk-pakketten.

  4. Update java-alternatieven. U kunt alle geïnstalleerde Java-versies bekijken met update-java-alternatives --list. Om OpenJDK Java 1.7 te activeren, voer je uit:

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

    U ziet mogelijk een fout over de IcedTeaPlugin.so plugin is niet beschikbaar. Dit is geen echte zorg voor ontwikkelaars die met de JDK werken.

  5. Controleer of Java werkt:

    java -version
    

    die iets moet opleveren dat lijkt op:

    javeversie "1.7.0_161"
    OpenJDK Runtime Environment (IcedTea 2.6.12) (7u161-2.6.12-1)
    OpenJDK 64-bits server VM (build 24.161-b01, gemengde modus)

Optie 2: automatische installatie (inclusief updates met apt)

Pinnen kan worden gebruikt om openjdk-7-jdk en de afhankelijkheden van Debian-repositories te installeren en bij te werken.

  1. Maak een pinning bestand dat vertelt apt om alleen pakketten te overwegen die ons interesseren (we willen zeker niet dat onze hele Ubuntu-distributie "geüpgraded" wordt met Debian-experimentele pakketten).

    Maak een bestand aan /etc/apt/preferences.d/debian met de onderstaande inhoud. Je hebt superuser-rechten nodig, dus gebruik een van sudo vim, sudo nano, gksudo gedit, enz.

    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
    

    Voor Ubuntu 17.10 en eerder, voegt u ook het volgende toe (en zie de opmerking onderaan):

    Package: libfontconfig1
    Pin: release o=Debian,n=sid
    Pin-Priority: 500
    
    Package: fontconfig-config
    Pin: release o=Debian,n=sid
    Pin-Priority: 500
    
  2. Installeer de Debian-sleutelring:

    sudo apt install debian-archive-keyring
    

    Opmerking: hoewel dit de eenvoudigste methode is om de debian-sleutelring toe te voegen, is deze mogelijk niet up-to-date. Controleer de uitvoer op het volgende tijdens het uitvoeren apt update in stap 4:

    W: GPG-fout: http://cdn-fastly.deb.debian.org/debian experimenteel InRelease: de volgende handtekeningen konden niet worden geverifieerd omdat de publieke sleutel niet beschikbaar is: NO_PUBKEY 8B48AD6246925553 NO_PUBKEY 7638D0442B90D010
    E: De repository 'http://httpredir.debian.org/debian experimenteel InRelease' is niet ondertekend.

    Als u deze fout ziet, voegt u handmatig de benodigde sleutels toe met:

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

    waar 8B48AD6246925553 en 7638D0442B90D010 moet overeenkomen met de schoppen die u in het waarschuwingsbericht ziet.

  3. Voeg de benodigde installatiebronnen toe:

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

    Waarom geen stabiele Debian-repository gebruiken? U zult onbevredigende afhankelijkheden tegenkomen met Debian-stable. De experimentele (voor openjdk-7) en sid (voor libjpeg62-turbo, libfontconfig1 en fontconfig-config) opslagplaatsen zijn soepeler met afhankelijkheidsversies.

  4. Bijwerken apt cache (verwacht dat dit een tijdje duurt, omdat Debian's pakketlijsten groot zijn):

    sudo apt update
    
  5. Installeer openjdk-7-jdk:

    sudo apt install openjdk-7-jdk
    
  6. Update java-alternatieven. U kunt alle geïnstalleerde Java-versies bekijken met update-java-alternatives --list. Om OpenJDK Java 1.7 te activeren, voer je uit:

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

    U ziet mogelijk een fout over de IcedTeaPlugin.so plugin is niet beschikbaar. Dit is geen echte zorg voor ontwikkelaars die met de JDK werken.

  7. Controleer of Java werkt:

    java -version
    

    die iets moet opleveren dat lijkt op:

    javeversie "1.7.0_161"
    OpenJDK Runtime Environment (IcedTea 2.6.12) (7u161-2.6.12-1)
    OpenJDK 64-bits server VM (build 24.161-b01, gemengde modus)

fontconfig-notities

libfontconfig1 en fontconfig-config moet worden geüpgraded naar 2.12 of later op Ubuntu 17.10 en eerder. De updatepakketten van Debian bevatten geen Ubuntu-aanpassingen, dus sommige toepassingen tonen lelijke lettertypen met deze pakketten geïnstalleerd; bijv. Charles Web Debugging Proxy. Afhankelijk van de programma's die u gebruikt, hebt u mogelijk al dan niet last van dit probleem.


47
2017-07-27 14:51



Interessant antwoord, werk deze bij als je een manier vindt om dit pakket automatisch bijgewerkt te houden. - J.Serra
Ik heb zojuist geprobeerd jdk 7 op ubuntu 16.04 te installeren en dit is de enige manier waarop ik het heb laten werken. Dank je! - link
@ J. Serra Antwoord herzien met automatische updatemethode. - MDMower
perfect beantwoord, vooral de automatische methode wordt zeer op prijs gesteld! bedankt dat je de tijd hebt genomen om erachter te komen en op te schrijven! - steadfasterX
De automatische methode werkte meestal voor mij, maar is ook niet helemaal permanent. Ik moest nog twee pakketten toevoegen aan /etc/apt/preferences.d/debian (naast libjpeg62-turbo): libfontconfig1 en fontconfig-config - comodoro


U kunt een OpenJDK 7 van Azul downloaden die mogelijk aan uw behoeften voldoet. Ze hebben allebei een DEB (voor het pakketsysteem) en een ZIP-distributie. Ik heb alleen met de ZIP-distributie gewerkt.

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


5
2017-10-23 19:10





Installeer Java 7 op Ubuntu 16.04, Ubuntu 17.04

Het wordt aanbevolen om te installeren Oracle Java, omdat het een prestatierand over heeft OpenJDK. Om die reden wil ik een alternatief plaatsen. Als u Oracle Java wilt installeren, voert u de volgende opdrachten in terminal uit om deze vanuit PPA te installeren.

  1. Voeg de benodigde installatiebronnen toe:

    sudo add-apt-repository ppa:webupd8team/java
    
  2. Bijwerken apt cache en installeer oracle-java7:

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

    Tijdens het installatieproces moet u de Oracle-licentie overeenkomst. Na de installatie moeten we Java-omgevingsvariabelen zoals instellen JAVA_HOME

  3. Juiste Java-omgevingsvariabelen.

    sudo apt install oracle-java7-set-default
    source /etc/profile
    
  4. Controleer of Java werkt:

    java -version
    

    die iets moet opleveren dat lijkt op:

    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



Het oracle-installatieprogramma werkt niet meer Verbinding maken met download.oracle.com (download.oracle.com) | 184.51.150.144 |: 80 ... verbonden. HTTP-verzoek verzonden, in afwachting van antwoord ... 404 Niet gevonden - autonomy
Voor Oracle JDK biedt het bedrijf niet aan publieke steun voor JDK 7 (ze bieden betaalde ondersteuning). ik denk de apt-get probeert het installatieprogramma van een niet-bestaande pagina te verkrijgen. - Als u JDK 7 nodig heeft, kunt u installatieprogramma's downloaden van de website Archief: oracle.com/technetwork/java/javase/downloads/... - Jaime


Oracle JDK alternatief:

Ik wilde de moeite met de opslagplaatsen vermijden, omdat ik tussen 7, 8 en 9 overschakelde, dus ik eindigde bij Oracle JDK in plaats van OpenJDK. Gedownload van de officiële site. Ik weet niet zeker of de nieuwste build 80 dezelfde oplossingen bevat als de build 161 van OpenJDK. Maar ik heb het voor ontwikkeling, dus dat betekent niet zoveel voor mij.

Dan moet je instellen $JAVA_HOME in de omgeving zodat verschillende scripts de juiste JDK oppikken (bijvoorbeeld Maven, JBoss etc.).

Voor de volledigheid was JDK versie 7 zelfs EOL'ed De openbare ondersteuning van JDK 8 wordt beëindigd sinds september 2017 en krijgt geen openbare updates na september 2018.


0
2017-11-19 16:58





Gebruik containers

Dit is een universeel geldig antwoord op het uitvoeren <outdated> software verwijderd <current> Ubuntu: containeriseer uw applicatie.

Gebruik bijvoorbeeld Docker en een oudere Ubuntu-basisafbeelding waarin de software die u zoekt nog steeds beschikbaar / onderhouden is.

Het werkt ook andersom; probeer de software uit op een nieuwere of zelfs andere Linux-distributie op je huidige stabiele Ubuntu.

Voorbeeld voor Java 7 met Ubuntu 14.04

  1. Installeer Docker - De gratis versie van Docker CE is prima. Zie bijvoorbeeld https://docs.docker.com/install/linux/docker-ce/ubuntu/ of gebruik de docker.io pakket in recente Ubuntu-versies verzonden.

  2. Maak een bestand in een lege map 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"]
    

    Voeg meer pakketten toe in die opdracht als dat nodig is.

  3. Voer in die map:

    docker build -t gertvdijk/java7 .
    
  4. Voer een opdracht uit in een container voor eenmalig gebruik met die Java 7-afbeelding:

    Bijv. java -version:

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

    Output:

    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. Maak desgewenst een verpakking voor het gemak.

    • Maak een bestand /usr/local/bin/java7-in-docker met inhoud:

      #!/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}" \
        $@
      

      Hierdoor wordt de huidige werkmap binnen de container beschikbaar - niet uw volledige bestandssysteem en wordt het uw lokale gebruikersaccount in de containernaamruimte.

    • Markeer het als uitvoerbaar bestand:

      sudo chmod +x /usr/local/bin/java7-in-docker
      
  6. Voer je Java 7 op transparante wijze uit, zoals dit:

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

0
2017-07-26 22:21





Een aanvulling op het antwoord van MDMower hierboven op Handmatige of automatische installatie. (*)

Op Ubuntu 16.04.5 LTS met hwe-16.04-edge kernels en Cinnamon als DE, ondervond ik onverwacht gedrag van lettertypen na installatie / upgrade van libfontconfig1 en de afhankelijkheid fontconfig-config. Plotseling had ik rare en dunne en nauwelijks leesbare mono-space fonts en andere "lelijke" lettertypen in veel menubalken van het programma, evenals in terminalvensters en veel andere plaatsen in mijn applicaties.

In het geval u dit probleem tegenkomt: Er lijkt hiervoor geen werkende oplossing te zijn tijdens runtime. Je verspilt je tijd niet door te zoeken naar een instelling om te corrigeren in de voorkeuren van Cinnamon's of Gnome's of FontConfig's of je terminal (bijvoorbeeld gconf-editor / gconftool, gnome-tweak-tool, fc- *). Dat heeft geen effect op de "gebroken" lettertypen. Het lijkt erop dat de update van Fontconfig-Config op de een of andere manier bekende / gecachte verwijzingen naar bepaalde lettertypen reset, en sommige fallback-lettertypen worden in plaats daarvan weergegeven, terwijl nog steeds naar de lettertypen wordt verwezen door hun oorspronkelijke naam.

Start gewoon je systeem opnieuw op en alles is weer normaal. Zelfs loggen en inloggen is misschien voldoende.


(*) Dit was bedoeld als een toevoeging of opmerking bij het bovenstaande antwoord door @MDMower, maar onvoldoende "reputatie" bij StackExchange verbiedt mij om het als commentaar te posten. Mijn bewerking is ook (gedeeltelijk terecht) afgewezen, vandaar dit spammy "antwoord" in plaats daarvan. Sorry. Ik zou blij zijn als iemand met voldoende "macht" dit "antwoord" zou verplaatsen om een ​​commentaar te zijn, waar het thuishoort. Bedankt!


0
2017-07-27 10:55





Een eenvoudige manier is:

Voeg deze regels toe aan: /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

Update dan apt en installeer. Je zult waarschijnlijk moeten downgraden tzdata pakket.

Daarna zou ik aanbevelen geef commentaar op die regels en apt update opnieuw om installatie of update van pakketten uit die repository te voorkomen (wat zou kunnen leiden tot onverwacht gedrag).

Een probleem is dat je die pakketten moet houden zodat ze niet worden verwijderd wanneer je je systeem bijwerkt (speciaal tzdata pakket).

NOTITIE: Gebruik deze methode als laatste redmiddel, geef de voorkeur aan andere opties waarmee u zonder problemen kunt updaten.


-2
2017-12-05 09:29