it-swarm.com.de

Machen Sie $ Java_HOME in Ubuntu einfach änderbar

In Ubuntu möchte ich meine Java_HOME-Umgebungsvariable zwischen Java 5 und 6 hin und her schalten.

Ich öffne ein Terminal und gebe Folgendes ein, um die Umgebungsvariable Java_HOME festzulegen:

export Java_HOME=/usr/lib/jvm/Java-1.5.0-Sun

Und im selben Terminalfenster gebe ich Folgendes ein, um zu überprüfen, ob die Umgebungsvariable aktualisiert wurde:

echo $Java_HOME

Und ich sehe /usr/lib/jvm/Java-1.5.0-Sun , was ich erwartet habe. Außerdem ändere ich ~/.profile und setze die Umgebungsvariable Java_HOME auf /usr/lib/jvm/Java-1.5.0-Sun.

Und nun zum Problem: Wenn ich ein neues Terminalfenster öffne und meine Java_HOME-Umgebungsvariable durch Eingabe von echo $ Java_HOME überprüfe, wird angezeigt, dass meine Java_HOME-Umgebungsvariable zurückgesetzt wurde zu Java 6. Wenn ich meinen Computer neu starte (oder mich abmelde und wieder anmelde, nehme ich an), wird die Umgebungsvariable Java_HOME auf Java 5 gesetzt (vermutlich aufgrund der Änderung, die ich in meinem ~/vorgenommen habe). Profil).

Gibt es eine Möglichkeit, dies zu umgehen, sodass ich meine Java_HOME-Umgebung ändern kann, ohne mich abmelden und wieder anmelden zu müssen (UND diese Umgebungsvariable ändern zu müssen , bleiben neue Terminalfenster)?

138
Junho Park

Setzen Sie die Umgebungsvariablen in das globale /etc/environment Datei:

...
export Java_HOME=/usr/lib/jvm/Java-1.5.0-Sun
...

Führen Sie "source/etc/environment" in jeder Shell aus, in der die Variablen aktualisiert werden sollen:

$ source /etc/environment

Überprüfen Sie, ob es funktioniert:

$ echo $Java_HOME
$ /usr/lib/jvm/Java-1.5.0-Sun

Super, kein Logout nötig.

Wenn Sie die Umgebungsvariable Java_HOME nur im Terminal festlegen möchten, legen Sie sie in der Datei ~/.bashrc fest.

196
Martin Konicek

Dies wird wahrscheinlich Ihr Problem lösen: https://help.ubuntu.com/community/EnvironmentVariables

Sitzungsweite Umgebungsvariablen

Um Umgebungsvariablen so festzulegen, dass sie sich auf die Umgebung eines bestimmten Benutzers auswirken, sollten keine Befehle zum Festlegen ihrer Werte in bestimmten Shell-Skriptdateien im Basisverzeichnis des Benutzers abgelegt werden, sondern Folgendes verwendet werden:

~/.pam_environment - Diese Datei ist speziell zum Festlegen der Umgebung eines Benutzers vorgesehen. Es ist keine Skriptdatei, sondern besteht aus Zuweisungsausdrücken, einer pro Zeile.

Nicht empfohlen:

~/.profile - Dies ist wahrscheinlich die beste Datei zum Platzieren von Umgebungsvariablenzuweisungen, da sie automatisch vom DisplayManager während des Startvorgangs der Desktopsitzung sowie von der Anmeldeshell ausgeführt wird, wenn Sie sich über die Textkonsole anmelden.

31
Holger Frohloff

Versuchen Sie diese Schritte.

- Wir werden "etc\profile" bearbeiten. Die Umgebungsvariablen werden am Ende der Datei eingegeben. Da Ubuntu keinen Zugriff auf den Stammordner gewährt, müssen wir einige Befehle im Terminal verwenden

Schritt 1: Terminal starten. Befehl eingeben: gksudo gedit /etc/profile

Schritt 2: Die Profiltextdatei wird geöffnet. Geben Sie die Umgebungsvariablen unten auf der Seite ein ........... zB:export Java_HOME=/home/alex/jdk1.6.0_22/bin/Java

export PATH=/home/alex/jdk1.6.0_22/bin:$PATH

schritt 3: Speichern und schließen Sie die Datei. Überprüfen Sie mit dem Befehl echo, ob die Umgebungsvariablen gesetzt sind. ........ zBecho $PATH

13
Alex

Sie müssen die Variablendefinition in das ~/.bashrc Datei.

Aus der Bash-Manpage:

Wenn eine interaktive Shell gestartet wird, die keine Anmeldeshell ist, liest bash Befehle aus /etc/bash.bashrc und ~/.bashrc und führt sie aus, sofern diese Dateien vorhanden sind.

9
Paweł Nadolski

Wenn Sie die Variable nur in Ihren Terminalfenstern ändern möchten, setzen Sie sie traditionell in .bashrc-Datei, die bei jedem Öffnen eines neuen Terminals abgerufen wird. .profile-Datei wird nicht bei jedem Öffnen eines neuen Terminals bezogen.

Sehen Sie sich den Unterschied zwischen .profile und .bashrc an: Was ist der Unterschied zwischen .bashrc, .bash_profile und .environment?

.bashrc sollte dein Problem lösen. Es ist jedoch nicht die richtige Lösung, da Sie Ubuntu verwenden. Siehe die entsprechende Ubuntu-Hilfeseite " Session-wide environment variables ". Kein Wunder also, dass .profile funktioniert bei dir nicht. Ich benutze Ubuntu 12.04 und xfce. Ich richte mein .profile und es wird einfach nicht wirksam, auch wenn ich mich auslogge und einlogge. Ähnliches Erlebnis hier . Möglicherweise müssen Sie .pam_environment Datei und vergessen Sie völlig über .profile, und .bashrc. Und beachten Sie, dass .pam_environment ist keine Skriptdatei.

5
HongboZhu

Nachdem Sie Änderungen an .profile vorgenommen haben, müssen Sie die Datei ausführen, damit die Änderungen wirksam werden.

[email protected]# . ~/.profile

Sobald dies erledigt ist, funktioniert der Echo-Befehl.

1
user2094397

Ich weiß, dass dies eine lange kalte Frage ist, aber sie taucht jedes Mal auf, wenn es eine neue oder kürzlich erschienene Hauptversion Java gibt. Dies würde nun leicht für das Vertauschen von 6 und 7 gelten.

Ich habe dies in der Vergangenheit mit update-Java-alternatives Getan: http://manpages.ubuntu.com/manpages/hardy/man8/update-Java-alternatives.8.html

1
Alain O'Dea

Schauen Sie sich bash(1) an, Sie benötigen eine Login-Shell , um ~/.profile, d. h. das -l Möglichkeit.

1