Installera OpenJDK på CentOS och välj Java med alternatives
Publicerad:
Uppdaterad:
Tekniska artiklar > Installera OpenJDK på CentOS och välj Java med alternatives
Status 2026 och säker användning
Slutsats: Installera en OpenJDK-version som stöds från en betrodd källa, välj systemets standard med alternatives och verifiera både java -version och javac -version. Ange JAVA_HOME bara för programvara som faktiskt behöver variabeln.
Det här går artikeln igenom
- Skillnaden mellan en Java-körmiljö (JRE), en fullständig JDK, PATH och
JAVA_HOME. - Hur alternatives väljer bland flera installerade Java-kommandon via hanterade symboliska länkar.
- Varför support- och licensvillkor måste kontrolleras för den exakta Java-distributionen.
Målgrupp: Linux-administratörer som förbereder Java för Maven, Tomcat eller en annan tjänst.
Läge 2026: Kommandona nedan är ett historiskt exempel med CentOS 7 och ett arkiv för OpenJDK 11. Välj i dag en JDK-gren som både stöds och är kompatibel med applikationen, använd aktuella paketnamn och kontrollera distributionens support- och licensvillkor.
Säkerhetsinformation: Kommandona och konfigurationsexemplen har inte testats på nytt i en aktuell produktionsmiljö. Verifiera källa, checksumma eller signatur, filbehörigheter och återställning i en separat testmiljö.
Viktiga officiella källor
Översikt
Artikeln visar hur ett OpenJDK 11-arkiv installerades manuellt på CentOS 7 och hur kommandona java och javac registrerades med alternatives.
Innehållsförteckning
1. Installation och val av Java
Det här avsnittet beskriver den manuella installationen och hur systemets Java-kommandon väljs.
1-1. Hämta OpenJDK
Hämta en OpenJDK-distribution som stöds från en betrodd leverantör och verifiera arkivets checksumma eller signatur.
1-2. Packa upp och flytta JDK:n
Originalproceduren förutsätter att OpenJDK-arkivet ligger i /var/work och installerar den uppackade JDK:n under /usr/lib/java.
[root@hostname ~]# tar xzvf /var/work/openjdk-11+28_linux-x64_bin.tar.gz
[root@hostname ~]# mkdir /usr/lib/java
[root@hostname ~]# mv jdk-11 /usr/lib/java/
Kommandona packar upp arkivet, skapar /usr/lib/java och flyttar katalogen jdk-11 dit. Kontrollera att filerna ägs av ett administrativt konto och inte kan ändras av obehöriga användare.
1-3. Registrera kommandon med alternatives
Alternatives hanterar grupper av symboliska länkar för kommandon som har flera installerade implementationer. Det gör det möjligt att växla systemets val av java och javac utan att manuellt skriva om länkkedjan.
[root@hostname ~]# alternatives --install /usr/bin/java java /usr/lib/java/jdk-11/bin/java 1
[root@hostname ~]# alternatives --install /usr/bin/javac javac /usr/lib/java/jdk-11/bin/javac 1
Den första raden har följande delar.
• Länken /usr/bin/java registreras som kommandots publika sökväg.
• Länkgruppen får namnet "java". Flera Java-installationer registreras som alternativa mål i samma grupp.
• Målet är /usr/lib/java/jdk-11/bin/java.
• Värdet 1 anger alternativets prioritet i automatiskt läge.
När gruppen är vald kan kommandot java anropas via systemets vanliga PATH.
1: Skalet hittar /usr/bin/java via PATH.
2: /usr/bin/java leder via alternatives till /etc/alternatives/java. Namnet "java" kommer från länkgruppen.
3: /etc/alternatives/java leder vidare till /usr/lib/java/jdk-11/bin/java.
Kommandot körs därmed genom länkkedjan i steg 1–3.
Verifiera den valda Java-versionen med följande kommando.
[root@hostname ~]# java -version
openjdk version "xx" yyyy-mm-dd
OpenJDK Runtime Environment xx.x (build xx+xx)
OpenJDK 64-Bit Server VM xx.x (build xx+xx, mixed mode)
Utdata ska visa den avsedda OpenJDK-versionen. Kontrollera även javac om en fullständig JDK krävs.
2. Sammanfattning
Den historiska proceduren installerar ett OpenJDK 11-arkiv under /usr/lib/java och registrerar java och javac med alternatives.
Alternatives styr vilken installation som nås via systemets kommandolänkar; det ersätter inte kontrollen av JDK-version, JAVA_HOME eller applikationens kompatibilitet.
Använd i första hand ett paket som stöds och verifiera alltid källa, aktiv version och filbehörigheter.