(Rozwiązane) Zmienna środowiskowa java_home nie jest poprawnie zdefiniowana na macOS

(Rozwiązane) Zmienna środowiskowa java_home nie jest poprawnie zdefiniowana na macOS

Java_home to zmienna środowiskowa używana przez różne aplikacje oparte na Javie do zlokalizowania JVM (JDK) w dowolnym systemie. Podobnie Maven wymagał również, aby Java_Home był prawidłowo ustawiony w systemie.

Problem:

Kiedy próbowałem sprawdzić wersję Maven na naszym komputerze macOS, otrzymałem następujący błąd w wyjściu.

mvn --version  Zmienna środowiskowa Java_Home nie jest poprawnie zdefiniowana, ta zmienna środowiskowa jest potrzebna do uruchomienia tego programu. 
Błąd: Zmienna środowiska java_home nie jest poprawnie zdefiniowana

Rozwiązanie:

Ponieważ komunikat o błędzie wyraźnie pokazuje, że zmienna środowiskowa java_home nie jest ustawiona na moim komputerze. Więc prostym rozwiązaniem jest poprawne ustawienie. Użyj poniższych kroków, aby rozwiązać ten problem.

MacOS 10.5 (Catalina) a późniejsza wersja użyj ZSH jako domyślnej powłoki. Starsza wersja używa powłoki Bash. Pierwszym z nich jest zidentyfikowanie powłoki działającej w twoim systemie. Otwórz terminal i wpisz:

Echo $ Shell  

Dla Zsh wyjście będzie /bin/zsh I dla Grzmotnąć powłoka wyjście będzie /bin/bash.

Teraz ustaw zmienną środowiskową java_home na podstawie aktywnej powłoki:

  • Zsh (/bin/zsh): Edytuj ~/.Zshenv plik i dołącz poniższy kod.
    ~/.Zshenv Export java_home = $ (/usr/libexec/java_home) 
  • Bash (/bin/bash): Edytuj ~/.bash_profile plik i dołącz poniższy kod.
    ~/.bash_profile eksport java_home = $ (/usr/libexec/java_home) 

Powinno to rozwiązać problem w twoim systemie. Aby potwierdzić, otwórz nową powłokę i wydrukuj wartość zmiennej środowiska java_home, a także potwierdź za pomocą polecenia, który otrzymałeś błąd.

Echo $ java_home  mvn --version  
Rozwiązane: java_home nie jest poprawnie zdefiniowane

Notatka: Jeśli problem nadal nie jest rozwiązany po prawidłowym ustawieniu zmiennej środowiska, upewnij się, że inne skrypty nie zastępują. Tutaj możesz znaleźć kolejność wykonania skryptu.