Gdzie Java jest zainstalowana na Mac OS X?


726

Właśnie pobrałem Java 7u17 na Mac OS 10.7.5 stąd, a następnie pomyślnie go zainstalowałem. Aby wykonać programowanie JNI, muszę wiedzieć, gdzie Java jest zainstalowana na moim komputerze Mac.

Myślałem, że w /Library/Java/JavaVirtualMachines/folderze będzie folder o nazwie 1.7.0.jdklub coś takiego, ale potem odkryłem, że folder jest pusty. Zostało to potwierdzone przez uruchomienie ls /Library/Java/JavaVirtualMachines/w terminalu. Próbowałem go znaleźć, aby dowiedzieć się, czy został zainstalowany gdzieś indziej, ale to chyba nic nie zmienia.

Czy ktoś mógłby mi powiedzieć, gdzie Java jest zainstalowana na moim komputerze Mac?


12
Aby zamknąć wyborców / ponownie otworzyć - pytanie to wyraźnie nie jest nie na temat (pytania o narzędzia powszechnie używane przez programistów) . Niestety, stało się to popularne dzięki meta .
Rob

Odpowiedzi:


1384

Użyj /usr/libexec/java_home -v 1.8polecenia w powłoce terminalu, aby dowiedzieć się, gdzie jest katalog domowy Java 1.8

Jeśli chcesz tylko znaleźć katalog domowy swojej najnowszej wersji Java, pomiń tę wersję. na przykład/usr/libexec/java_home


Dotarłem do tego pytania, ponieważ otrzymywałem błąd w zaćmieniu na moim komputerze Mac, ponieważ pojawiał się błąd w pierwszym wierszu programu „import java.util. *.” Podejrzewam, że dzieje się tak, ponieważ ścieżka Java nie jest ustawiona poprawnie lub coś w tym rodzaju (mimo że konfigurowałem to wcześniej). W tej odpowiedzi wpisałem polecenie i otrzymałem katalog. Czy mogę po prostu wkleić ten katalog do pola tekstowego w oknie „Konfiguracja natywnego folderu biblioteki”? Czy ten katalog należy gdzieś indziej?
OKGimmeMoney

47
Dodano export JAVA_HOME=`/usr/libexec/java_home`do .bash_profile, więc JAVA_HOME jest zawsze ustawiony (zwróć uwagę na tyknięcia wokół polecenia libexec)
Steve Henty,

Jeśli chcesz tylko wiedzieć, czy JDK jest zainstalowany na twoim komputerze Mac, pomiń numer wersji i uruchom z terminala: $ echo $ (/ usr / libexec / java_home)
Donato

3
Na Macu 10.12.3 powinniśmy /usr/libexec/java_home -- vpokazać najnowszą wersję java
klion26

116

Możesz użyć echo $(/usr/libexec/java_home)polecenia w swoim terminalu, aby poznać ścieżkę instalacji Java.


7
Podoba mi się to rozwiązanie bardziej niż zaakceptowana odpowiedź, ponieważ jest ono niezależne od zainstalowanej wersji JVM.
Alexandre Santos,

1
To nie znalazło mojej wersji Java 8 zainstalowanej przez Oracle.
Antoine Lizée 28.04.16

13
Dlaczego tam masz echo $(...)? Czy to nie tylko /usr/libexec/java_hometo samo?
Paŭlo Ebermann

1
Przyjęta odpowiedź nie działała dla mnie, ale zadziałało! (Zwykle nie jestem użytkownikiem Mac / Unix)
Roel

@ PaŭloEbermann Nie działa dla mnie bez znaku dolara i nawiasów.
Nikola Stojaković

80

Okazuje się, że faktycznie zainstalowałem JRE Java 7, a nie JDK. Prawidłowy link do pobrania znajduje się tutaj . Po zainstalowaniu jdk1.7.0jdkpojawia się w katalogu JavaVirtualMachines.


49
Dla mnie to było pod /Library/Java/JavaVirtualMachines/jdk1.7.0_60.jdk(wiedząc, że dla JDK 1.6 ścieżka jest: /System/Library/Java/JavaVirtualMachines/1.6.0.jdk/)
Zakaria

Dzięki wielkie! Nie zauważyłem, że przez przypadek zainstalowałem środowisko JRE xD
Oliver Ni

1
eksportuj JAVA_HOME = $ (/ usr / libexec / java_home) w ~ / .bash_profile
Oleksii Kyslytsyn

35

Jeśli zainstalujesz tylko środowisko JRE, wydaje się, że jest ono ustawione na:

/Library/Internet Plug-Ins/JavaAppletPlugin.plugin/Contents/Home

1
Nie powinieneś polegać na tym istniejącym. Jeśli potrzebujesz środowiska JRE, umieść go w pakiecie we własnej aplikacji.
swingler

Ustawienie JAVA_HOME ze ścieżką zawierającą znak spacji jest trudne! Nie udało mi się ...
Antoine Rosset

możesz utworzyć gdzieś link do tego katalogu i ustawić JAVA_HOME na ten link
Kuba

W tym miejscu panel Preferencje systemowe „Java” wydaje się go instalować.
David Avendasora

2
@AntoineRosset, możesz ustawić to w ten sposób:export JAVA_HOME=/Library/Internet\ Plug-Ins/JavaAppletPlugin.plugin/Contents/Home
Coda

24

Użyj funkcji wyszukiwania Unix, aby znaleźć zainstalowane javas ...

sudo find / -name java

19
Nie potrzebujesz sudo, aby uruchomić find dla ogólnie dostępnych poleceń. Jeśli nie chcesz wyświetlać komunikatów o błędach dotyczących niedostępnych katalogów, pozbądź się komunikatów zamiast niepotrzebnego korzystania z uprawnień roota. Używanie sudo przez cały czas jest złym nawykiem. Przekieruj stderr na / dev / null, tak jak to: find / -name java 2> / dev / null
Walter Underwood

1
Co powinienem zrobić, jeśli muszę również zajrzeć do niedostępnych katalogów?
serkan

2
Walter twierdzi, że javaplik binarny będzie czytelny na całym świecie, dlatego sudonie jest konieczny. Twoja odpowiedź jest nadal przydatna :)
Jared Beck

Tak, właśnie użyłem tego, aby znaleźć src.zip (kod źródłowy java jdk)
Dinis Cruz

eksportuj JAVA_HOME = $ (/ usr / libexec / java_home) w ~ / .bash_profile
Oleksii Kyslytsyn

22

Spróbuj, to łatwy sposób na znalezienie ścieżki zainstalowanej w Javie w Mac OS X,

Iść do

1) / Library tj. Macintosh HD / Library

wprowadź opis zdjęcia tutaj

2) Kliknij bibliotekę, w której znajdziemy folder Java.

wprowadź opis zdjęcia tutaj

3) Tak więc ostatnia ścieżka jest

/Library/Java/JavaVirtualMachines/jdk1.8.0_144.jdk/Contents/Home

Mam nadzieję, że to jest pomoc dla kogoś.


1
Bardzo pomocne, gdy musisz wyraźnie wskazać JDK z IDE. Dzięki
Shwetabh Shekhar

Jak gęsty jestem? Mój terminal mówi, że mam zainstalowane 2 jdk w / Library / Java / JavaVirtualMachines /, ale nie mogę ich znaleźć, gdy przejdę do tego katalogu w wyszukiwarce ... Jak gęsta mogę uzyskać ...
SoftwareSavant

@ SoftwareSavant, zapoznaj się z odpowiedzią stackoverflow.com/a/14875241 , może to ci pomóc.
Jaywant Khedkar,

19

Struktura pakietu Java systemu Mac OS różni się nieco od systemu Windows. Nie denerwuj się tym, ponieważ programista musi tylko ustawić PATHi JAVA_HOME.

Tak w .bash_profilezestawie JAVA_HOMEi PATHjak poniżej. Ten przykład dotyczy Java 6:

export JAVA_HOME=/System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home
export PATH=/System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home/bin:$PATH

12
Czy usuwa to wszystko ze ścieżki? Zrób to tylko, jeśli używasz tylko Javy i nic więcej w swoim systemie.
Paŭlo Ebermann

eksportuj JAVA_HOME = $ (/ usr / libexec / java_home) w ~ / .bash_profile.
Oleksii Kyslytsyn

17

Jeśli wpiszesz

java -verbose 

Daje to również lokalizację, z której słoiki są ładowane, a tym samym również ścieżkę Java.


Dodałem eksport JAVA_HOME = $ (/ usr / libexec / java_home) w ~ / .bash_profile.
Oleksii Kyslytsyn

8

Edytowano: Alias ​​do bieżącej wersji Java to /Library/Java/Home

Aby uzyskać więcej informacji: link


Byłby to alias dla najnowszej wersji, który poprawnie wskazywałby na pakiet Java 7 SDK po jego zainstalowaniu.
Thunderforge,

1
Ten link istnieje tylko do starszych wersji i nie zostanie zaktualizowany przez zainstalowanie Java 7. Nie używaj tej ścieżki.
swingler

Zaktualizowałem eksport JAVA_HOME = $ (/ usr / libexec / java_home) w ~ / .bash_profile.
Oleksii Kyslytsyn

8

po prostu napisz /Library/Java/JavaVirtualMachines/
Idź do folderu -> Idź w Finderze


ok, właśnie tego spróbowałem i udało mi się przejść do katalogu. Dlaczego nie mogę normalnie nawigować do tego folderu w Finderze? Czy to tylko Apple jest wyjątkowo irytujące ... Również wyjątkowo denerwująca, wersja Gradle 4.3 nie działa z żadną wersją Javy oprócz Java 8
SoftwareSavant

eksportuj JAVA_HOME = $ (/ usr / libexec / java_home) w ~ / .bash_profile
Oleksii Kyslytsyn

6

Właśnie zainstalowałem JDK dla wersji 21 Java SE 7 i stwierdziłem, że jest on zainstalowany w innym katalogu niż Java 6. Apple'a. Jest w / Library / Java ... zamiast w / System / Library / Java ... Uruchomienie / usr / libexec / java_home -v 1.7 kontra -v 1.6 to potwierdzi.


eksportuj JAVA_HOME = $ (/ usr / libexec / java_home) w ~ / .bash_profile
Oleksii Kyslytsyn

6

Próbowałem rozwiązania serkan, znalazło lokalizację java 7 na OS X Mavericks. jest rezydowany, "/Library/Java/JavaVirtualMachines/jdk1.7.0_51.jdk/" ale aby ustawić go jako domyślny JDK, musiałem ustawić zmienną systemową JAVA_HOME w .bash_profile w katalogu domowym, aby "/Library/Java/JavaVirtualMachines/jdk1.7.0_51.jdk/Contents/Home/" działał teraz dzięki pomysłowi serkan


eksportuj JAVA_HOME = $ (/ usr / libexec / java_home) w ~ / .bash_profile.
Oleksii Kyslytsyn

5

Dla :

  • OS X: 10.11.6

  • Java: 8

Potwierdzam odpowiedź @ Morrie.

   export JAVA_HOME=/Library/Internet\ Plug-Ins/JavaAppletPlugin.plugin/Contents/Home;

Ale jeśli prowadzisz kontenery, twoje życie będzie łatwiejsze


2
Myślę, że powinien to być komentarz.
Thunderforge,

1
Nie sądzę, ponieważ istnieje wartość dodana, którą jest `export JAVA_HOME =`. ... Co z tobą @Thunderforge
Abdennour TOUMI

eksportuj JAVA_HOME = $ (/ usr / libexec / java_home) w ~ / .bash_profile.
Oleksii Kyslytsyn


-1

Preferencje systemowe, następnie panel sterowania Java, następnie Java, a następnie Widok pokażą dokładną lokalizację obecnie zainstalowanego domyślnego środowiska JRE.


eksportuj JAVA_HOME = $ (/ usr / libexec / java_home) w ~ / .bash_profile
Oleksii Kyslytsyn
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.