Ich bin neu im Linux-System und es scheint zu viele Java-Ordner zu geben.
Java-Version gibt mir:
- Java-Version "1.7.0_55"
- OpenJDK-Laufzeitumgebung (rhel-2.4.7.1.el6_5-x86_64 u55-b13)
- OpenJDK 64-Bit-Server-VM (Build 24.51-b03, gemischter Modus)
Wenn ich versuche, ein Maven-Projekt zu erstellen, wird folgende Fehlermeldung angezeigt:
Error: JAVA_HOME is not defined correctly.
We cannot execute /usr/java/jdk1.7.0_05/bin/java
Könnten Sie mir bitte sagen, welche Dateien ich sowohl für Root- als auch für Nicht-Root-Benutzer ändern muss und wo genau sich Java befindet?
java
linux
java-home
path-variables
Amruta
quelle
quelle
JAVA_HOME
, schadet nicht auch das Einrichten.source /etc/profile
Änderungen auch sofort wirksam werden!/etc/profile.d/jdk.sh
In meinem System schwebte tatsächlich ein abgestandener Körper herum.Für alle Benutzer würde ich empfehlen, die folgende Zeile einzufügen
/etc/profile
Dies wird dynamisch aktualisiert und funktioniert gut mit dem alternativen System. Beachten Sie jedoch, dass das Update nur in einer neuen Login-Shell stattfindet.
quelle
export JAVA_HOME=$(readlink -f /usr/bin/java | sed "s:/bin/java::")
- beachten Sie, dass ich nurjava
, nicht verwendenjavac
readlink
und aktualisieren / aktualisieren Sie kompatible Lösungen, auch wenn dies ein 5 Jahre alter Thread ist. Ich empfehle nur, / etc / profile nicht zu bearbeiten, sondern Ihren Export in eine benutzerdefinierte Datei zu legen, z. B./etc/profile.d/java_environment.sh
müssen Sie möglicherweise einenchmod +x java_environment.sh
Neustart durchführen.dirname
Lösung. Wenn Sie wie ich sind und verstehen möchten, was hier vor sich geht, ist dies ein einfacher Ersatz für übereinstimmenden Text aus der Eingabe durch eine leere Zeichenfolge. Das "Standard" -Zeichen für Ersetzungen ist das/
, aber solange Sie konsistent sind, können Sie das/
durch alles ersetzen . In diesem Fall sind es Doppelpunkte, wie wir sie/
für Pfadtrennzeichen verwenden.Sie könnten / etc / profile oder besser eine Datei wie /etc/profile.d/jdk_home.sh verwenden
Sie müssen sich daran erinnern, dass diese Datei nur mit neuen Login-Shells geladen wird. Also nach bash -l oder einer neuen Gnome-Sitzung und dass sie sich mit neuen Java-Versionen nicht ändert.
quelle
/etc/profile.d/*.sh
sodass Ihre Datei aufgerufen werden muss,jdk_home.sh
damit sie bezogen wird/etc/profile.d/jdk_home.sh
ist die viel sauberere Antwort, zumindest für Ubuntu ,/etc/profile
ist schon mit so viel Logik verklumpt. Es schien nicht ratsam, mehr hinzuzufügen ...Keine der anderen Antworten "klebte" für mich in RHEL 7, auch nicht beim Einstellen
JAVA_HOME
undPATH
direkt in/etc/profile
oder~/.bash_profile
würde nicht funktionieren. Jedes Mal, wenn ich versuchte zu überprüfen, obJAVA_HOME
es eingestellt war, wurde es leer angezeigt:Was ich tun musste, war ein Skript einzurichten in
/etc/profile.d/jdk_home.sh
:Ich habe die erste Zeile (die
#!/bin/sh
) anfangs vernachlässigt und es wird ohne sie nicht funktionieren.Jetzt geht es:
quelle
Es ist sehr einfach, unter Linux einen Pfad festzulegen. Gehen Sie wie folgt vor:
Schritt 1 Öffnen Sie das Terminal und geben Sie es ein
sudo gedit .bashrc
Schritt 2 Sie werden nach Ihrem Passwort gefragt. Nach Eingabe des Passworts wird die Bash-Datei geöffnet. Gehen Sie dann zum Ende und geben Sie unten ein
Schritt 3
Schritt 4 Speichern Sie dann die Datei und beenden Sie die Datei
Oben ist für einen einzelnen Benutzer. Für alle Benutzer müssen Sie die folgenden Schritte ausführen
Schritt 1
gedit /etc/profile
Schritt 2
export JAVA_HOME="/usr/lib/jvm/java-8-openjdk-amd64/"
Schritt 3
export PATH=$PATH:$JAVA_HOME/bin
Hoffe das hilft. Vielen Dank!
quelle
Tun, was Oracle tut (als ehemaliger Sun-Mitarbeiter kann ich mich nicht daran gewöhnen)
ln -s latestJavaRelease / usr / java / default
Wobei latestJavaRelease die Version ist, die Sie verwenden möchten
Exportieren Sie dann JAVA_HOME = / usr / java / default
quelle
Die Antwort wird gegeben, frühere Beiträge sind gültig. Aber nicht eine Antwort ist vollständig in Bezug auf:
Erstellen Sie also wie oben angegeben die Datei /etc/profile.d/custom.sh für benutzerdefinierte Änderungen.
Um immer auf dem neuesten Stand zu bleiben, wenn neuere Versionen von Java installiert werden, geben Sie niemals den absoluten Pfad ein, sondern verwenden Sie stattdessen:
quelle
Kopieren Sie den von Ihnen installierten Bin-Dateipfad
Öffnen Sie das Terminal und bearbeiten Sie die Umgebungsdatei, indem Sie den folgenden Befehl eingeben:
Fügen Sie in dieser Datei die folgende Zeile hinzu (ersetzen Sie sie
YOUR_PATH
durch den gerade kopierten Pfad):Das sollte ausreichen, um die Umgebungsvariable festzulegen. Laden Sie nun diese Datei neu:
Testen Sie es jetzt, indem Sie Folgendes ausführen:
quelle
/usr/lib/jvm/default-java/
Unter Linux füge ich diese Zeile meinem ~ / .profile hinzu:
quelle
Schritt 1 - Überprüfen Sie die aktuelle Java-Version mit "echo $ JAVA_HOME".
Schritt 2 - vim / etc / profile
Schritt 3 - Am Ende der Datei finden Sie den Export JAVA_HOME. Hier müssen Sie den neuen Pfad angeben. Stellen Sie sicher, dass er nicht relativ ist.
Schritt 4 - Speichern und beenden: wq
Schritt 5 - "source / etc / profile /", dies würde die Änderung ausführen
Schritt 6 - Führen Sie erneut ein Echo durch. $ JAVA_HOME - Änderung hätte sich widerspiegeln.
quelle
1 ... Mit der Abkürzung
Ctlr
+Alt
+T
Öffnen Sie das Terminal2 ... Führen Sie den folgenden Befehl aus:
3 ... (empfohlen) Starten Sie Ihre VM / Ihren Computer neu. Sie können verwenden
source /etc/source
wenn Sie den Computer nicht neu starten möchten4 ... Mit der Abkürzung
Ctlr
+Alt
+T
, um das Terminal zu öffnen5 ... Verifizierte JAVA_HOME-Rate mit
Einzeilige Kopie von Flob , Gutschrift an sie
quelle
quelle
Wahrscheinlich ist es eine gute Idee, das von Ihnen bearbeitete Profil zu verwenden, um zu vermeiden, dass Sie ein neues Login verwenden müssen.
entweder: source / etc / oder. /etc/
Wo ist das Profil, das Sie bearbeitet haben?
quelle
Lassen Sie mich einige Vorteile des Festlegens von JAVA_HOME oder einer anderen Umgebungsvariablen erläutern, während wir JAVA_HOME festlegen:
1) Es ist einfach, JDK zu aktualisieren, ohne dass dies Auswirkungen auf den Start und die Konfigurationsdatei Ihrer Anwendung hat, die auf JAVA_HOME verweist. Sie müssen nur eine neue Version herunterladen und sicherstellen, dass JAVA_HOME auf eine neue Java-Version verweist. Dies ist der beste Vorteil der Verwendung von Umgebungsvariablen oder Links.
2) Die Variable JAVA_HOME ist kurz und prägnant anstelle des vollständigen Pfads zum JDK-Installationsverzeichnis.
3) Die Variable JAVA_HOME ist plattformunabhängig. Wenn Ihr Startskript JAVA_HOME verwendet, kann es ohne Änderungen unter Windows und UNIX ausgeführt werden. Sie müssen lediglich JAVA_HOME auf dem jeweiligen Betriebssystem festlegen.
Lesen Sie mehr: http://javarevisited.blogspot.com/2012/02/how-to-set-javahome-environment-in.html#ixzz4BWmaYIjH
quelle
Dies ist ein sehr einfaches Skript, um das Problem zu lösen
Und zum Testen:
quelle
Posting als Antwort, da ich nicht das Privileg habe zu kommentieren.
Hinweis : Befolgen Sie die akzeptierte Antwort von "That Dave Guy".
Stellen Sie nach dem Festlegen der Variablen sicher, dass Sie die entsprechenden Berechtigungen für das Java-Verzeichnis festgelegt haben, in dem es installiert ist.
quelle
Verwenden Sie SDKMAN sdkman.io , um übrigens zu wechseln. deine sdk's.
Es legt das JAVA_HOME für Sie fest.
quelle
Öffnen Sie kafka-run-class.sh mit sudo, um zu schreiben
Sie finden kafka-run-class.sh in Ihrem kafka-Ordner: kafka / bin / kafka-run-class.sh
Überprüfen Sie diese Zeilen
Ändern Sie die JAVA-Variable im else-Teil so, dass sie auf die ausführbare Java-Datei in Ihrem Java / Bin verweist. wie JAVA = "$ JAVA_HOME / java"
quelle
Alle operativen Schritte (Java finden, übergeordnetes Verzeichnis, Datei bearbeiten, ...) eine Lösung
Ergebnis:
Erläuterung:
1) Lassen Sie uns den vollständigen Befehl in Teile zerlegen
2) Finden Sie den Java-Pfad mit dem Java-Befehl
3) Ermitteln Sie den relativen Pfad vom symbolischen Pfad
4) Holen Sie sich den übergeordneten Pfad von
/usr/lib/jvm/java-11-openjdk-11.0.7.10-1.el8_1.x86_64/bin/java
5) Holen Sie sich den übergeordneten Pfad von
/usr/lib/jvm/java-11-openjdk-11.0.7.10-1.el8_1.x86_64/bin/
quelle
Wenn Sie dies in / etc / profile öffnen, erfahren Sie, dass es nicht empfohlen wird, in diese Datei zu schreiben. Erstellen Sie stattdessen ein Skript für Ihre Befehle (vorausgesetzt, test.sh), gehen Sie zum Ordner /etc/profile.d und legen Sie dort test.sh ab. Jedes Mal, wenn Sie die Instanz neu starten, wird sie automatisch von / etc / profile aufgerufen.
quelle
Ich benutze die Zeile:
zu meinem ~ / .profile, damit es bei der Anmeldung die Basis des Standard-Java-Verzeichnisses verwendet. Dies ist für Bash.
quelle