W Ubuntu chciałbym przełączać moją zmienną środowiskową JAVA_HOME tam iz powrotem między Java 5 i 6.
Otwieram terminal i wpisuję następujące polecenie, aby ustawić zmienną środowiskową JAVA_HOME:
export JAVA_HOME=/usr/lib/jvm/java-1.5.0-sun
W tym samym oknie terminala wpisuję co następuje, aby sprawdzić, czy zmienna środowiskowa została zaktualizowana:
echo $JAVA_HOME
I widzę /usr/lib/jvm/java-1.5.0-sun, co jest tym, czego się spodziewam. Dodatkowo modyfikuję ~ / .profile i ustawiam zmienną środowiskową JAVA_HOME na /usr/lib/jvm/java-1.5.0-sun.
A teraz problem - kiedy otwieram nowe okno terminala i sprawdzam zmienną środowiskową JAVA_HOME, wpisując echo $ JAVA_HOME , widzę, że moja zmienna środowiskowa JAVA_HOME została przywrócona do Java 6. Kiedy ponownie uruchamiam komputer (lub loguję tam iz powrotem, jak przypuszczam) zmienna środowiskowa JAVA_HOME jest ustawiona na Java 5 (prawdopodobnie z powodu modyfikacji, którą wprowadziłem w moim ~ / .profile).
Czy istnieje sposób wokół to tak, że mogę zmienić JAVA_HOME środowiska, bez konieczności logowania się i z powrotem w (i uczynić tę zmienną środowiskową zmiany kij we wszystkich nowych terminali systemu Windows)?
źródło
~/.profile
Plik jest tylko do odczytu podczas logowania do Ubuntu, więc jeśli logout / login następnie JAVA_HOME jest ustawiony dla wszystkich terminali i innych aplikacjach uruchamianych. Jeśli ustawisz JAVA_HOME~/.bashrc
, będzie to widoczne tylko dla aplikacji uruchamianych z terminala.Odpowiedzi:
Umieść zmienne środowiskowe w
/etc/environment
pliku globalnym :Wykonaj „source / etc / environment” w każdej powłoce, w której chcesz zaktualizować zmienne:
Sprawdź, czy działa:
Świetnie, wylogowywanie się nie jest potrzebne.
Jeśli chcesz ustawić zmienną środowiskową JAVA_HOME tylko w terminalu, ustaw ją w pliku ~ / .bashrc .
źródło
/etc/environment
jest to specjalne i nie pozwala na podstawianie zmiennych, np.JRE_HOME=${JAVA_HOME}/jre
nie zadziała.To prawdopodobnie rozwiąże Twój problem: https://help.ubuntu.com/community/EnvironmentVariables
źródło
Spróbuj wykonać te czynności.
- Zamierzamy edytować "etc \ profile". Zmienne środowiskowe należy wprowadzić na końcu pliku. Ponieważ Ubuntu nie daje dostępu do folderu głównego, będziemy musieli użyć kilku poleceń w terminalu
Krok 1: Uruchom Terminal. Wpisz polecenie:
gksudo gedit /etc/profile
Krok 2: Otworzy się plik tekstowy profilu. Wprowadź zmienne środowiskowe na dole strony ........... np .:
export JAVA_HOME=/home/alex/jdk1.6.0_22/bin/java
krok 3: zapisz i zamknij plik. Sprawdź, czy zmienne środowiskowe są ustawione za pomocą polecenia echo ........ Np
echo $PATH
źródło
Musisz umieścić w
~/.bashrc
pliku definicję zmiennej .Ze strony podręcznika bash:
źródło
Tradycyjnie, jeśli chcesz zmienić zmienną tylko w oknach terminala, ustaw ją w
.bashrc
pliku, który jest pobierany za każdym razem, gdy otwierany jest nowy terminal..profile
plik nie jest pobierany za każdym razem, gdy otwierasz nowy terminal.Zobacz różnicę między .profile i .bashrc: Jaka jest różnica między .bashrc, .bash_profile i .environment?
.bashrc
powinien rozwiązać twój problem. Jednak nie jest to właściwe rozwiązanie, ponieważ używasz Ubuntu. Zobacz odpowiednią stronę pomocy Ubuntu „ Zmienne środowiskowe dla całej sesji ”. Dlatego nic dziwnego, że.profile
to nie działa dla Ciebie. Używam Ubuntu 12.04 i xfce. Skonfigurowałem mój.profile
i po prostu nie działa, nawet jeśli się wyloguję i zaloguję. Podobne doświadczenie tutaj . Być może będziesz musiał użyć.pam_environment
pliku i całkowicie zapomnieć o.profile
i.bashrc
. UWAGA, że.pam_environment
nie jest to plik skryptu.źródło
Spójrz
bash(1)
, potrzebujesz powłoki logowania, aby pobrać~/.profile
, tj.-l
Opcję.źródło
Wiem, że to długie, chłodne pytanie, ale pojawia się za każdym razem, gdy pojawia się nowa lub niedawna ważna wersja Javy. Teraz można to łatwo zastosować do zamiany 6 i 7.
Robiłem to w przeszłości z
update-java-alternatives
: http://manpages.ubuntu.com/manpages/hardy/man8/update-java-alternatives.8.htmlźródło
Po wprowadzeniu zmian w .profile należy uruchomić plik, aby zmiany odniosły skutek.
Po wykonaniu tej czynności polecenie echo będzie działać.
źródło
~/.profile
raczej używać niż./.profile
.