Introductie
Deze tutorial laat zien hoe je Java installeert op huidige versies van op RPM gebaseerde Linux-distributies: Red Hat Enterprise Linux, CentOS, Fedora en Rocky Linux. Java is een populaire programmeertaal en softwareplatform waarmee je veel servertoepassingen kunt uitvoeren.
Deze tutorial behandelt het installeren van de nieuwste standaardversie van Java, evenals het selectief installeren van oudere versies en het wisselen tussen meerdere versies in je omgeving indien nodig.
Vereisten
Voordat je met deze handleiding begint, moet je een gewone, niet-rootgebruiker hebben met sudo-rechten geconfigureerd op je server – dit is de gebruiker waarmee je op je server moet inloggen. Je kunt leren hoe je een gewoon gebruikersaccount configureert door de stappen te volgen in onze handleiding voor het initiële serverinstellingen voor Rocky Linux 8.
Stap 1 – OpenJDK installeren
Er zijn drie verschillende edities van het Java Platform: Standard Edition (SE), Enterprise Edition (EE) en Micro Edition (ME). Deze tutorial richt zich op Java SE (Java Platform, Standard Edition). Bijna alle open source Java-software is ontworpen om te werken met Java SE.
Er zijn twee verschillende Java SE-pakketten die geïnstalleerd kunnen worden: de Java Runtime Environment (JRE) en de Java Development Kit (JDK). JRE is een implementatie van de Java Virtual Machine (JVM), waarmee je gecompileerde Java-toepassingen en applets kunt uitvoeren. De JDK bevat de JRE en ook andere software die nodig is voor het schrijven, ontwikkelen en compileren van Java-toepassingen en applets.
Er zijn ook twee verschillende implementaties van Java: OpenJDK en Oracle Java. Beide implementaties zijn grotendeels gebaseerd op dezelfde code, maar OpenJDK, de referentie-implementatie van Java, is volledig open source, terwijl Oracle Java enkele eigen code bevat. De meeste Java-toepassingen zullen prima werken met beide implementaties, maar je moet degene gebruiken waar jouw software om vraagt.
Je kunt verschillende versies en releases van Java op één systeem installeren, maar de meeste mensen hebben slechts één installatie nodig. Houd daarbij in gedachten dat je alleen de versie van Java moet installeren die je nodig hebt om je toepassing(en) uit te voeren of te ontwikkelen.
In dit gedeelte zal ik laten zien hoe je de vooraf gebouwde OpenJDK JRE- en JDK-pakketten kunt installeren met behulp van de yum
-pakketbeheerder. yum
is de standaard pakketbeheerder voor distributies die RPM-pakketten gebruiken.
Om OpenJDK te installeren met yum, kun je sudo yum install java
uitvoeren:
Standaard zal het proberen te installeren van java
zonder een versie te specificeren resulteren in de meest voorkomende stabiele versie van de OpenJDK JRE. Zoals je kunt zien aan deze uitvoer, is dat op dit moment java-1.8.0-openjdk
:
OutputLast metadata expiration check: 0:02:38 ago on Tue 22 Feb 2022 04:57:59 PM UTC.
Dependencies resolved.
========================================================================================
Package Arch Version Repo Size
========================================================================================
Installing:
java-1.8.0-openjdk x86_64 1:1.8.0.322.b06-2.el8_5 appstream 341 k
Installing dependencies:
alsa-lib x86_64 1.2.5-4.el8 appstream 488 k
atk x86_64 2.28.1-1.el8 appstream 270 k
avahi-libs x86_64 0.7-20.el8 baseos 61 k
copy-jdk-configs noarch 4.0-2.el8 appstream 29 k
cups-libs x86_64 1:2.2.6-40.el8 baseos 432 k
fribidi x86_64 1.0.4-8.el8 appstream 88 k
…
Er zullen ook meerdere afhankelijkheden worden verstrekt samen met Java. Bij de bevestigingsprompt, voer y
in en druk op Enter om door te gaan met de installatie. Je kunt ook gevraagd worden om de ondertekeningsleutels voor de repositories die je installeert te accepteren:
OutputImporting GPG key 0x6D745A60:
Userid : "Release Engineering <[email protected]>"
Fingerprint: 7051 C470 A929 F454 CEBE 37B7 15AF 5DAC 6D74 5A60
From : /etc/pki/rpm-gpg/RPM-GPG-KEY-rockyofficial
Is this ok [y/N]:
Voer opnieuw y
in en druk op Enter.
Je zou nu een werkende Java-installatie moeten hebben. Om dit te bevestigen, kun je java -version
uitvoeren, om de versie van Java te controleren die nu beschikbaar is in je omgeving:
Opmerking: Meestal worden opdrachtregelargumenten voorafgegaan door één streepje voor enkele letterargumenten, of twee streepjes voor argumenten van volledige woorden. Java volgt een andere conventie door één streepje te gebruiken voor alle argumenten, in dit geval -version
.
Outputopenjdk version "1.8.0_322"
OpenJDK Runtime Environment (build 1.8.0_322-b06)
OpenJDK 64-Bit Server VM (build 25.322-b06, mixed mode)
De interacties tussen de Java-naamgevingsconventies en de Linux-pakketnaamgevingsconventies kunnen enigszins verwarrend zijn. Eerder in deze handleiding hebben we het verschil verduidelijkt tussen de volledige JDK-omgeving voor ontwikkeling en de JRE-omgeving voor het uitvoeren van Java-toepassingen. Hoewel OpenJDK de naam is van de open source distributie van Java, heb je eigenlijk alleen de OpenJDK JRE geïnstalleerd. Om de volledige OpenJDK JDK te installeren, moet je het overeenkomstige pakket installeren met -devel
toegevoegd aan zijn naam. Dit is een veelvoorkomende conventie voor ontwikkelingspakketten voor andere programmeeromgevingen, die Java ook volgt, hoewel de terminologie hier onhandig overlapt.
Net als eerder kun je java-devel
installeren om de standaardversie te krijgen, of specificeer java-1.8.0-openjdk-devel
:
OutputDigitalOcean Droplet Agent 63 kB/s | 3.3 kB 00:00
Dependencies resolved.
========================================================================================
Package Arch Version Repository Size
========================================================================================
Installing:
java-1.8.0-openjdk-devel x86_64 1:1.8.0.322.b06-2.el8_5 appstream 9.8 M
Transaction Summary
========================================================================================
Install 1 Package
Total download size: 9.8 M
Installed size: 41 M
Is this ok [y/N]:
Na het installeren van dit pakket zou je een volledige OpenJDK-omgeving moeten hebben die elke Java-software kan compileren en uitvoeren die geen specifieke versie-incompatibiliteiten heeft. In de volgende sectie zul je andere versies van Java installeren en beheren.
Stap 2 – Andere OpenJDK-releases installeren
Recentelijk heeft OpenJDK zijn versienummeringsschema gewijzigd om nauwer aan te sluiten bij de releases van Oracle Java. Om een nieuwere versie van OpenJDK te installeren, kun je het versienummer specificeren in de pakketnaam, net zoals bij 1.8.0
. Bijvoorbeeld, om OpenJDK 17 te installeren, kun je yum install java-17-openjdk
gebruiken:
OutputLast metadata expiration check: 0:03:36 ago on Tue 22 Feb 2022 05:42:44 PM UTC.
Dependencies resolved.
========================================================================================
Package Arch Version Repository Size
========================================================================================
Installing:
java-17-openjdk x86_64 1:17.0.2.0.8-4.el8_5 appstream 244 k
Installing dependencies:
adwaita-cursor-theme noarch 3.28.0-2.el8 appstream 646 k
adwaita-icon-theme noarch 3.28.0-2.el8 appstream 11 M
at-spi2-atk x86_64 2.26.2-1.el8 appstream 88 k
at-spi2-core x86_64 2.28.0-1.el8 appstream 168 k
colord-libs x86_64 1.4.2-1.el8 appstream 234 k
java-17-openjdk-headless x86_64 1:17.0.2.0.8-4.el8_5 appstream 41 M
lcms2 x86_64 2.9-2.el8 appstream 163 k
…
Zoals eerder, kun je de volledige JDK-omgeving installeren door -devel
toe te voegen aan de pakketnaam. Echter, na dit, zullen uitgevoerde java
-programma’s nog steeds de OpenJDK 1.8.0-versie gebruiken die je eerder standaard hebt geïnstalleerd, wat je kunt bevestigen door opnieuw java -version
uit te voeren:
Outputopenjdk version "1.8.0_322"
OpenJDK Runtime Environment (build 1.8.0_322-b06)
OpenJDK 64-Bit Server VM (build 25.322-b06, mixed mode)
In de volgende stap ga je geïnstalleerde versies van Java beheren.
Stap 3 – Het instellen van je standaard Java-versie
Als je meerdere versies van Java hebt geïnstalleerd, wil je mogelijk één als standaard instellen (dat wil zeggen, degene die wordt uitgevoerd wanneer een gebruiker het java
-commando uitvoert). Bovendien vereisen sommige toepassingen dat bepaalde omgevingsvariabelen worden ingesteld om te bepalen welke installatie van Java moet worden gebruikt.
Met het alternatives
-commando, dat standaardopdrachten beheert via symbolische koppelingen, kun je de standaard Java-versie selecteren. Om de beschikbare versies van Java die kunnen worden beheerd door alternatives
weer te geven, gebruik je alternatives --config java
:
De uitvoer zou beide versies van Java moeten vermelden die je hebt geïnstalleerd:
outputThere are 2 programs which provide 'java'.
Selection Command
-----------------------------------------------
*+ 1 java-1.8.0-openjdk.x86_64 (/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.322.b06-2.el8_5.x86_64/jre/bin/java)
2 java-17-openjdk.x86_64 (/usr/lib/jvm/java-17-openjdk-17.0.2.0.8-4.el8_5.x86_64/bin/java)
Enter to keep the current selection[+], or type selection number:
Voer het selectienummer in om te kiezen welke standaard java
-uitvoerbare bestand moet worden gebruikt. Het zal de nodige symbolische koppelingen op uw systeem herschikken om ervoor te zorgen dat het java
-commando wijst naar de juiste set bibliotheken. U kunt dit commando indien nodig opnieuw uitvoeren, en de uitvoer van java -version
moet dienovereenkomstig veranderen:
Outputopenjdk version "17.0.2" 2022-01-18 LTS
OpenJDK Runtime Environment 21.9 (build 17.0.2+8-LTS)
OpenJDK 64-Bit Server VM 21.9 (build 17.0.2+8-LTS, mixed mode, sharing)
Veel Java-toepassingen gebruiken ook de omgevingsvariabelen JAVA_HOME
of JRE_HOME
om te bepalen welk java
-uitvoerbaar bestand moet worden gebruikt.
Bijvoorbeeld, als je Java hebt geïnstalleerd in (/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.322.b06-2.el8_5.x86_64/jre/bin
(dwz. jouw java
-uitvoerbaar bestand bevindt zich op <^>(/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.322.b06-2.el8_5.x86_64/jre/bin/java
), dan zou je jouw JAVA_HOME
-omgevingsvariabele in een bash-shell of script als volgt kunnen instellen:
Opmerking: De omgevingsvariabele JAVA_HOME
geeft er de voorkeur aan dat je het pad naar jouw Java-installatie instelt eindigend in de /jre
-map. Deze conventie kan verschillen van de ene variabele naar de andere, dus het is het beste om voorzichtig voorbeelden te controleren bij het aanbrengen van wijzigingen.
Als je wilt dat JAVA_HOME
standaard voor elke gebruiker op het systeem wordt ingesteld, voeg dan de vorige regel toe aan het bestand /etc/environment
. Je kunt deze aan het bestand toevoegen met behulp van echo
en >>
shell-omleiding, om te voorkomen dat je het bestand /etc/environment
direct hoeft te bewerken, door dit commando uit te voeren:
In de volgende stap zul je de eigen Java van Oracle naast je OpenJDK-versies installeren.
Stap 4 – Oracle Java installeren
In dit gedeelte van de handleiding wordt uitgelegd hoe u Oracle Java JRE en JDK (64-bits), de nieuwste release van deze pakketten op het moment van schrijven, kunt installeren.
Opmerking:
Als u de interactieve terminal op deze pagina gebruikt, kunt u Oracle Java niet downloaden en installeren in de omgeving.
Gedurende dit gedeelte zullen we de wget
-opdracht gebruiken om de Oracle Java-softwarepakketten te downloaden. wget
is mogelijk niet standaard opgenomen in uw Linux-distributie, dus om mee te doen moet u het installeren door het volgende uit te voeren:
U moet de Oracle Binary Code License Agreement voor Java SE accepteren, wat een van de meegeleverde stappen is, voordat u Oracle Java installeert.
Opmerking: Om Oracle Java te installeren, moet u naar de Oracle Java Downloads-pagina gaan, akkoord gaan met de licentieovereenkomst en de downloadlink van het passende Linux x86 .rpm
-pakket kopiëren. Vervang de gekopieerde downloadlink op de aangewezen plaats in de wget
-opdracht.
Ga naar uw home-directory en download het Oracle Java RPM met deze opdrachten:
Vervolgens installeert u de RPM met yum localinstall
(als u een andere release hebt gedownload, vervang dan hier het bestandsnaam):
Bij de bevestigingsprompt voert u y
in en drukt u op Enter om door te gaan met de installatie.
U kunt het archiefbestand dat u eerder hebt gedownload, verwijderen:
U kunt nu het alternatives
-commando opnieuw uitvoeren en u zou een derde optie moeten zien om Oracle Java te gebruiken:
outputThere are 3 programs which provide 'java'.
Selection Command
-----------------------------------------------
1 java-1.8.0-openjdk.x86_64 (/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.322.b06-2.el8_5.x86_64/jre/bin/java)
+ 2 java-17-openjdk.x86_64 (/usr/lib/jvm/java-17-openjdk-17.0.2.0.8-4.el8_5.x86_64/bin/java)
* 3 /usr/java/jdk-17.0.2/bin/java
Enter to keep the current selection[+], or type selection number:
De stappen in deze handleiding zouden voldoende moeten zijn om elke beschikbare versie van Java te installeren en uit te voeren, afhankelijk van uw gebruikssituatie.
Conclusie
In deze handleiding hebt u meerdere versies van Java geïnstalleerd en beheerd met behulp van de yum
-pakketbeheerder, het alternatives
-commando en omgevingsvariabelen. Dit zijn allemaal fundamentele aspecten van het beheer van de Linux-omgeving, en Java biedt een bijzonder goed voorbeeld van hoe hiermee te werken vanwege de vele verschillende versies.
Mogelijk wilt u nu leren hoe u Java in andere contexten kunt gebruiken.
Source:
https://www.digitalocean.com/community/tutorials/how-to-install-java-on-centos-and-fedora