Co powinienem ustawić JAVA HOME na OSX
Wiele aplikacji Java, które używają skryptów powłoki do konfigurowania środowiska, używa zmiennej środowiskowej JAVA_HOME
, aby uruchomić poprawną wersję Javy, zlokalizować Jar JRE i tak dalej.
Na OSX 10.6, następujące ścieżki wydają się być ważne dla tej zmiennej
/Library/Java/Home
/System/Library/Frameworks/JavaVM.framework/Home
/System/Library/Frameworks/JavaVM.framework/Versions/Current
Niektóre z nich są dowiązaniami symbolicznymi do bieżącej maszyny wirtualnej (zdefiniowanej w okienku preferencji Java).
Ale który z nich powinien być używany-czy jest to w porządku, aby użyć któregokolwiek z nich?
13 answers
Czy Snow Leopard nadal ma /usr/libexec/java_home
? W wersji 10.5 po prostu ustawiłem JAVA_HOME
na wyjście tego polecenia, które powinno dać Ci ścieżkę Javy określoną w Twoich preferencjach Javy. Oto fragment mojego pliku .bashrc
, który ustawia tę zmienną:
export JAVA_HOME=$(/usr/libexec/java_home)
Nie doświadczyłem żadnych problemów z tą techniką.
Czasami muszę zmienić wartość JAVA_HOME
na wcześniejszą wersję Javy. Na przykład JEDEN program, który prowadzę, wymaga 32-bitowej Javy 5 na OS X, więc podczas korzystania z tego program, ustawiam JAVA_HOME
uruchamiając:
export JAVA_HOME=$(/usr/libexec/java_home -v 1.5)
Dla tych z Was, którzy nie mają java_home
na swojej drodze dodaj to tak.
sudo ln -s /System/Library/Frameworks/JavaVM.framework/Versions/Current/Commands/java_home /usr/libexec/java_home
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-10-06 16:48:03
Również, to jest interesujące, aby ustawić swoją ścieżkę do odzwierciedlenia JDK. Po dodaniu JAVA_HOME (co można zrobić za pomocą przykładu podanego przez 'mipadi'):
export JAVA_HOME=$(/usr/libexec/java_home)
Dodaj także do~/.profil:
export PATH=${JAVA_HOME}/bin:$PATH
P. S.: dla OSX, generalnie używam .profil w katalogu domowym zamiast .bashrc
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2010-03-08 18:55:59
Obecnie Java wydaje się być instalowana w /Library/Java / JavaVirtualMachines
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-05-07 21:13:17
Mam MAC OS X(Sierra) 10.12.2 .
Ustawiłem JAVA_HOME do pracy na React Native (dla aplikacji na Androida), wykonując następujące kroki.
Otwórz Terminal (polecenie + R, wpisz Terminal, naciśnij ENTER).
Dodaj następujące wiersze do ~/.bash_profile .
export JAVA_HOME=$(/usr/libexec/java_home)
Teraz uruchom następujące polecenie.
source ~/.bash_profile
Możesz sprawdzić dokładną wartość JAVA_HOME, wpisując następujące dowództwo.
echo $JAVA_HOME
Zwrócona wartość(Wyjście) będzie podobna do poniższej.
/Library/Java/JavaVirtualMachines/jdk1.8.0_131.jdk/Contents/Home
To wszystko.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-06-21 06:02:50
Jestem na Mac OS 10.6.8
Najprostszym rozwiązaniem działa dla mnie jest po prostu umieścić w
$ export JAVA_HOME=$(/usr/libexec/java_home)
Aby sprawdzić, czy to działa, włóż
$ echo $JAVA_HOME
Pokazuje
/System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home
Możesz również przetestować
$ which java
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-02-12 20:40:15
Używam /Library/Java/Home
. Sposób działania panelu preferencje powinien być zgodny z preferowaną wersją.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2009-08-28 19:23:41
To już nie działa w YOSEMITE dla aplikacji graficznych! Jak zaćmienie, czy cokolwiek zaczęło się od Spotlight. (.bash_profile,conf działa tylko dla sesji terminala.) Przed uruchomieniem eclipse, wystarczy otworzyć okno terminala i wydać następujące polecenie:
Launchctl setenv JAVA_HOME / Library / Java / JavaVirtualMachines/jdk1.7. 0_45.jdk / Contents / Home
(ze ścieżką instalacji! Być może działa z $(/usr / libexec / java_home) zamiast pełnej ścieżki też.)
Zobacz cały doskonały artykuł o stałym rozwiązaniu tutaj: Ustawianie zmiennych środowiskowych za pomocą launchd.conf nie działa już w OS X Yosemite/El Capitan / macOS Sierra?
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-05-23 12:02:48
Znalazłem ten stos aby pomóc, miałem ten sam problem i mogłem naprawić:
Moja ścieżka Javy była tutaj:
/Library/Internet Plug-Ins/JavaAppletPlugin.plugin/Contents/Home
I trzeba było włożyć do mojego .bash_profile
:
export JAVA_HOME=\"/Library/Internet Plug-Ins/JavaAppletPlugin.plugin/Contents/Home\"
Hope help
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-05-23 11:47:29
Jak zauważają inne odpowiedzi, poprawnym sposobem znalezienia katalogu domowego Javy jest użycie /usr/libexec/java_home
.
Oficjalna dokumentacja tego jest w techniczne Qa1170: ważne katalogi Java na OS X: https://developer.apple.com/library/mac/qa/qa1170/_index.html
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-04-27 15:01:35
Dla mnie maven wydaje się działać poza .mavenrc
Plik:
echo "export JAVA_HOME=$(/usr/libexec/java_home -v 1.8)" > ~/.mavenrc
Jestem pewien, że ja też to odebrałem, tylko nie pamiętam gdzie.Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-11-08 19:22:35
Pomijanie konfiguracji terminala skoro wspomniałeś o aplikacjach, ustawiona stała zmienna środowiskowa systemu (działa dla macOS Sierra; powinna działać również dla El Capitan):
launchctl setenv JAVA_HOME $(/usr/libexec/java_home -v 1.8)
(spowoduje to ustawienie JAVA_HOME na najnowszy 1.8 JDK, możliwe, że przeszedłeś przez aktualizacje serveral np. javac 1.8.0_101, javac 1.8.0_131)
Oczywiście Zmień 1.8 na 1.7 lub 1.6(naprawdę?) w zależności od potrzeb i systemu
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-06-11 10:04:43
Utwórz plik ~/.mavenrc
Następnie wklej to do pliku
export JAVA_HOME=$(/usr/libexec/java_home)
Test
mvn -v
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-12-28 18:07:17
Dla użytkowników muszli ryb, użyj czegoś takiego jak: alias java7 "set -gx JAVA_HOME (/usr/libexec/java_home -v1.7)"
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-04-28 01:01:25