
Hallo, ich habe ein Problem. Mein Linux-Terminal zeigt bash: java_home: Keine solche Datei oder kein solches Verzeichnis. Wenn ich echo $JAVA_HOME eingebe, erhalte ich /usr/lib/jvm/java-8-openjdk-amd64 und echo $PATH zeigt /usr/lib/jvm/java-8-openjdk-amd64/bin:/usr/lib/jvm/java-8-openjdk-amd64/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games. Wenn ich sudo apt-get install schreibe, erhalte ich JAVA_HOME:not find. Ich kann kein Problem finden. Ich verwende Kubuntu. Unten können Sie mein Terminal und meine .profile-Datei in meinem Home-Verzeichnis sehen. Vielleicht weiß jemand, wie man das behebt. Vielen Dank im Voraus.
Antwort1
Die entscheidende Fehlermeldung ist:
/usr/sbin/update-info-dir: 2: /etc/environment: JAVA_HOME: not found
Dies deutet darauf hin, dass die Fehlermeldung von stammt /usr/sbin/update-info-dir
. Dabei handelt es sich um ein Skript, das als Teil von Paketinstallations-/-entfernungsvorgängen ausgeführt werden kann. Es liest (bezieht) die /etc/environment
Datei und stößt dabei auf einen Fehler.
/etc/environment
soll nur Umgebungsvariablenzuweisungen im POSIX-Shell-Stil enthalten, d. h.
VARIABLE_NAME=value
Es ist wichtig,keine Leerzeichen vor oder nach dem Gleichheitszeichen: Wenn Leerzeichen vorhanden sind, wird der Variablenname als Shell-Befehl interpretiert und die Shell versucht, ihn auszuführen.
Ich vermute, dass Ihre /etc/environment
Datei wahrscheinlich etwas enthält wie
JAVA_HOME = /usr/lib/jvm/java-8-openjdk-amd64
Anstatt also den Pfadnamen der Umgebungsvariable zuzuweisen $JAVA_HOME
, interpretiert die Shell, die die Datei liest, diese als auszuführenden Shell-Befehl. Sie versucht, einen Befehl mit dem Namen wörtlich JAVA_HOME
mit zwei Parametern, =
und , auszuführen /usr/lib/jvm/java-8-openjdk-amd64
. Da ein Befehl mit dem Namen JAVA_HOME
nicht existiert, führt dies zu einer Fehlermeldung.
Bearbeiten Sie Ihre /etc/environment
Datei und entfernen Sie alle Leerzeichen vor/nach dem Gleichheitszeichen in den Umgebungsvariablenzuweisungen.
Antwort2
sudo verwaltet Ihre Umgebungsvariablen nicht. Versuchen Sie
sudo JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64 apt-get ...
Wenn dies von Ihrer Sudo-Konfiguration nicht zugelassen wird, versuchen Sie es sudo -i
mit dem folgenden Befehl JAVA_HOME=... apt-get...
wie oben beschrieben.