Heim >Java >javaLernprogramm >Die bevorzugte Methode zum Installieren und Verwalten von Java JDKs unter Linux
Ich verwende Fedora Workstation 40, aber ähnliche Schritte würden auf den meisten großen Linux-Distributionen wie Ubuntu/Mint usw. funktionieren
Auf einigen Linux-Distributionen ist Java standardmäßig installiert. Es handelt sich jedoch nur um die JRE und nicht um das JDK. Sie können dies überprüfen, indem der Java-Befehl gefunden wird, der Javac-Befehl jedoch NICHT gefunden wird.
java # would show manual of arguments javac # would give not found error if JDK not installed
java --version # OR "java -version" for older java javac --version
Lesen Sie diese Artikel, um die Unterschiede zwischen JDK, JRE und JVM zu erfahren:
In Fedora werden die JREs/JDKs in /usr/lib/jvm gespeichert. So können Sie sich den Inhalt ansehen oder ihn wie folgt abfragen:
find /usr/lib/jvm -name java find /usr/lib/jvm -name javac
Ich verwende Fedora 40, wo der Paketmanager dnf ist. Sie würden Ihr gewünschtes OpenJDK über den Paketmanager Ihrer jeweiligen Linux-Distribution installieren (wie apt für Ubuntu/Debian):
dnf search jdk
Sie erhalten eine Liste der zur Installation verfügbaren Pakete mit verschiedenen Java-Versionen sowie das Variantensuffix im Paket. Die Headless-Varianten enthalten normalerweise nur die JRE. Um das vollständige JDK mit allen notwendigen Tools für die Java-Entwicklung zu installieren, benötigen wir die Entwicklungsvariante des Pakets, die normalerweise das Suffix -devel im Namen für dnf enthält. Hier ist eine Liste einiger Paketvariantennamen für Java 17 OpenJDK aus der dnf-Ausgabe:
java-17-openjdk.x86_64 : OpenJDK 17 Runtime Environment java-17-openjdk-devel.x86_64 : OpenJDK 17 Development Environment java-17-openjdk-devel-fastdebug.x86_64 : OpenJDK 17 Development Environment optimised with full debugging on java-17-openjdk-devel-slowdebug.x86_64 : OpenJDK 17 Development Environment unoptimised with full debugging on java-17-openjdk-fastdebug.x86_64 : OpenJDK 17 Runtime Environment optimised with full debugging on java-17-openjdk-headless.x86_64 : OpenJDK 17 Headless Runtime Environment java-17-openjdk-headless-fastdebug.x86_64 : OpenJDK 17 Runtime Environment optimised with full debugging on java-17-openjdk-headless-slowdebug.x86_64 : OpenJDK 17 Runtime Environment unoptimised with full debugging on java-17-openjdk-javadoc.x86_64 : OpenJDK 17 API documentation java-17-openjdk-portable.x86_64 : OpenJDK 17 Runtime Environment portable edition java-17-openjdk-portable-devel.x86_64 : OpenJDK 17 Development Environment portable edition java-17-openjdk-portable-sources.x86_64 : OpenJDK 17 full patched sources of portable JDK java-17-openjdk-slowdebug.x86_64 : OpenJDK 17 Runtime Environment unoptimised with full debugging on java-17-openjdk-src.x86_64 : OpenJDK 17 Source Bundle java-17-openjdk-src-fastdebug.x86_64 : OpenJDK 17 Source Bundle for packages with debugging on and optimisation java-17-openjdk-src-slowdebug.x86_64 : OpenJDK 17 Source Bundle for packages with debugging on and no optimisation
Unter Ubuntu gibt es weniger Pakete und das Paket, das Sie installieren möchten, heißt normalerweise openjdk-17-jdk für das gesamte JDK-Toolset
# Installing the latest OpenJDK with optimized debugging sudo dnf install java-latest-openjdk-devel-fastdebug # Installing a specific version like OpenJDK 17 sudo dnf install java-17-openjdk-devel
Besuchen Sie die offizielle Oracle SE-Downloadseite. Suchen Sie den Download-Bereich Ihrer erforderlichen Java-Version
Laden Sie das passende Paket für Ihre Plattform herunter. Laden Sie für RedHat-basierte Linux-Distributionen wie Fedora das .rpm-Paket herunter (und .deb für Ubuntu/Debian). Vor dem Herunterladen müssen Sie sich bei Oracle anmelden und den Bedingungen zustimmen
Doppelklicken Sie auf die heruntergeladene Datei (z. B. jdk-11.0.24_linux-x64_bin.rpm) und wählen Sie „Installieren“. Es wird das Oracle JDK installieren und konfigurieren.
Nachdem OracleJDK installiert ist, überprüfen Sie die erkannten Java- und Javac-Befehle
Sie können JDKs auch aus IntelliJ selbst heraus installieren:
IntelliJ erkennt automatisch Ihre verfügbaren JDK-Speicherorte auf Ihrem System. Sie können auch Ihre vorhandenen JDK-Ordnerspeicherorte wie /usr/lib/jvm/jdk-11-oracle-x64 unter konfigurierten JDKs in der Projektstruktur hinzufügen
Der Befehl „update-alternatives“ unter Linux (in Fedora auch nur „Alternatives“ genannt) erstellt, entfernt, verwaltet und zeigt Informationen über die symbolischen Links an, aus denen das Alternativensystem besteht.
Es ist möglich, dass auf einem System gleichzeitig mehrere Programme installiert sind, die gleiche oder ähnliche Funktionen erfüllen. Ein generischer Name im Dateisystem wird von allen Dateien gemeinsam genutzt, die austauschbare Funktionalität bieten. Das Alternativensystem hilft dabei, festzustellen, auf welche tatsächliche Datei dieser generische Name verweist.
Nützliche Referenzen:
Wenn Sie OpenJDK über Ihren Paketmanager oder Oracle-JDK aus der heruntergeladenen Datei installieren, sollten die Alternativen während dieses Vorgangs automatisch aktualisiert werden
java # would show manual of arguments javac # would give not found error if JDK not installed
Die Ausgabe würde wie folgt aussehen:
java --version # OR "java -version" for older java javac --version
Siehe auch die Liste der alternativen Optionen für Javac
Wenn eine Alternative für Ihre Befehle NICHT in der Liste registriert ist, können Sie sie manuell hinzufügen als:
find /usr/lib/jvm -name java find /usr/lib/jvm -name javac
Zum Beispiel habe ich das JetBrains Runtime (JCEF) JDK aus IntelliJ heruntergeladen, das im Ordner ~/.jdks/jbrsdk_jcef-17.0.12/ heruntergeladen wurde; aber es wurde nicht in der Alternativliste angezeigt. Daher füge ich den Alternativeneintrag für Java und Javac hinzu als:
dnf search jdk
Fügen Sie auf ähnliche Weise nach Bedarf Alternativen für weitere Befehle wie jar, Javadoc usw. hinzu
Sie können Follower-Links auch hinzufügen als:
--install link name path priority [--follower link name path]... [--initscript service] [--family name]
Wählen Sie zwischen den vorhandenen Java-Installationen
java-17-openjdk.x86_64 : OpenJDK 17 Runtime Environment java-17-openjdk-devel.x86_64 : OpenJDK 17 Development Environment java-17-openjdk-devel-fastdebug.x86_64 : OpenJDK 17 Development Environment optimised with full debugging on java-17-openjdk-devel-slowdebug.x86_64 : OpenJDK 17 Development Environment unoptimised with full debugging on java-17-openjdk-fastdebug.x86_64 : OpenJDK 17 Runtime Environment optimised with full debugging on java-17-openjdk-headless.x86_64 : OpenJDK 17 Headless Runtime Environment java-17-openjdk-headless-fastdebug.x86_64 : OpenJDK 17 Runtime Environment optimised with full debugging on java-17-openjdk-headless-slowdebug.x86_64 : OpenJDK 17 Runtime Environment unoptimised with full debugging on java-17-openjdk-javadoc.x86_64 : OpenJDK 17 API documentation java-17-openjdk-portable.x86_64 : OpenJDK 17 Runtime Environment portable edition java-17-openjdk-portable-devel.x86_64 : OpenJDK 17 Development Environment portable edition java-17-openjdk-portable-sources.x86_64 : OpenJDK 17 full patched sources of portable JDK java-17-openjdk-slowdebug.x86_64 : OpenJDK 17 Runtime Environment unoptimised with full debugging on java-17-openjdk-src.x86_64 : OpenJDK 17 Source Bundle java-17-openjdk-src-fastdebug.x86_64 : OpenJDK 17 Source Bundle for packages with debugging on and optimisation java-17-openjdk-src-slowdebug.x86_64 : OpenJDK 17 Source Bundle for packages with debugging on and no optimisation
Die Ausgabe würde wie folgt aussehen. Beachten Sie, dass * die beste verfügbare Version und Ihre aktuelle Auswahl bezeichnet:
# Installing the latest OpenJDK with optimized debugging sudo dnf install java-latest-openjdk-devel-fastdebug # Installing a specific version like OpenJDK 17 sudo dnf install java-17-openjdk-devel
Wählen Sie ebenfalls eine der alternativen Optionen für Javac
Denken Sie beim Deinstallieren/Entfernen Ihrer JDK-Pakete daran, auch die entsprechenden Alternativeinträge zu löschen
Zum Beispiel, um den alternativen Java-Befehlseintrag des JCEF JDK zu entfernen:
java # would show manual of arguments javac # would give not found error if JDK not installed
Dies sollte nicht erforderlich sein, wenn Sie die Update-Alternatives-Methode zur Verwaltung zwischen Java-Installationen verwenden und alle Einträge vollständig sind
Um die Konfiguration in Ihrem Shell-Profil jedoch manuell festzulegen, können Sie wie folgt vorgehen:
java --version # OR "java -version" for older java javac --version
find /usr/lib/jvm -name java find /usr/lib/jvm -name javac
dnf search jdk
Das obige ist der detaillierte Inhalt vonDie bevorzugte Methode zum Installieren und Verwalten von Java JDKs unter Linux. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!