Instalowanie Java w systemie OS X 10.9 (Mavericks)


321

Zainstalowałem JDK na Mac OS X 10.8 (Mountain Lion). Kiedy zaktualizowałem go do systemu Mac OS X 10.9 (Mavericks) i uruchomiłem java -versionw terminalu, pokazało:

Brak środowiska wykonawczego Java z prośbą o instalację.

Następnie ręcznie zainstalowałem JDK (1.7) na moim komputerze Mac. Wygląda na to, że instalacja działała dobrze. Po zakończeniu instalacji otworzyłem terminal i też napisałem java -version. Pokazał również ten sam błąd:

Brak środowiska wykonawczego Java z prośbą o instalację.

Jak mogę rozwiązać ten problem?


1
Nie wiem, na czym polega problem w terminalu, ale zaćmienie mam i wszystkie projekty kompilują się dobrze w indywidualny sposób
— Sunny,

1
wygląda na to, że stary program uruchamiający java obsługuje tylko jdk 1.6, ale mavericks nie ma domyślnie zainstalowanej wersji 1.6.
— Shawn

1
Zainstalowałeś java 6, a nie java 7, ponieważ pierwotnie OP sugerował, że są potrzebne. Interesuje mnie, w jaki sposób osiągnięto to rozwiązanie. Musi również istnieć podejście „alternatywne”, które bezpośrednio odnosi się do informacji zwrotnych z terminala.
— Rondo

4
Jest to świetne rozwiązanie dla Javy 6, ale jak sprawić, by Java 7 działała?
— 190290000 Rubel Man

2
Dodano potencjalną odpowiedź, aby zainstalować środowisko Java 7 JRE i sprawić, by działało w terminalu: stackoverflow.com/a/19582689/346286
— analog

Odpowiedzi:


279

Nowy Mavericks (10.9) pokazał mi „Żądanie instalacji”, ale nic się nie wydarzyło.

Rozwiązaniem było ręczne pobranie i zainstalowanie oficjalnego pakietu Java dla OS X, który znajduje się w Java dla OS X 2013-005.

Aktualizacja: Jak wspomniano w komentarzach poniżej, istnieje nowsza wersja tego samego pakietu:

Java dla OS X 2014-001

Java dla OS X 2014-001 (powyżej korygowanie terminu )

Java dla OS X 2014-001 zawiera ulepszenia instalacji i zastępuje wszystkie poprzednie wersje Java dla OS X. Ten pakiet instaluje tę samą wersję Java 6 zawartą w Javie dla OS X 2013-005.


Dla mnie to samo. Innym wyborem jest instalacja Java z Oracle. Który według was jest lepszy? Wydaje się, że Oracle aktualizuje Javę szybciej niż Apple.
— Ngoc Pham

2
ale ten daje ci JDK 6. jak możemy bezpośrednio używać JDK 6?
— Shawn

2
@Shawn Apple wyłącza już zainstalowany JDK 7. Ale możesz pobrać FAQ i zainstalować tutaj: java.com/en/download/faq/java_mac.xml, ale go nie wypróbowałem.
— Guy

Jeśli zainstalowałeś zarówno java6, jak i java7, możesz wybrać v6 w swojej powłoce za pomocą: export JAVA_HOME = / System / Library / Java / JavaVirtualMachines / 1.6.0.jdk / Contents / Home
— Jürgen Strobel

1
Dlaczego chcesz używać 32-bitowej javy w 64-bitowym systemie operacyjnym? 64-bitowa Java jest w rzeczywistości szybsza niż 32-bitowa pod Mavericks.
— MiB

196

Jeśli chcesz tylko zainstalować najnowszą oficjalną wersję JRE firmy Oracle, możesz ją tam pobrać, zainstalować i wyeksportować nową JAVA_HOME do terminala.

  • Otwórz terminal
  • java -version wyświetla błąd i wyskakujące okienko
  • Pobierz dmg JRE na http://www.oracle.com/technetwork/java/javase/downloads/index.html
  • Zainstaluj to
  • W swoim terminalu wpisz: export JAVA_HOME="/Library/Internet Plug-Ins/JavaAppletPlugin.plugin/Contents/Home"
  • java -version teraz daje ci java version "1.7.0_45"

To najczystszy sposób, w jaki udało mi się zainstalować najnowszą wersję JRE.

Możesz dodać export JAVA_HOMElinię w swoim, .bashrcaby mieć na javastałe w swoim terminalu:

echo export JAVA_HOME=\"/Library/Internet Plug-Ins/JavaAppletPlugin.plugin/Contents/Home\" >> ~/.bashrc

37
Wydaje mi się, że zdefiniowanie JAVA_HOMEwskazywania na wtyczkę przeglądarki zamiast prawdziwej maszyny wirtualnej jest nieco podejrzane . Po zainstalowaniu narzędzia wiersza poleceń XCode, masz narzędzie dla uzyskania prawidłowego ścieżkę /usr/libexec/java_home. Zobacz developer.apple.com/library/mac/documentation/Darwin/Reference/… .
— Ilkka

8
@Ilkka - brzmi podejrzanie, ale tak naprawdę instaluje JRE Oracle. Java firmy Apple (która kończy się o 6 java) nie miesza się z wyrocznią tak ładnie, jak mogłoby się to podobać
— Orion Edwards

12
Mój kolega (który niestety nie ma tutaj wymaganej reputacji, aby dodawać komentarze) chce dodać, że ustawienie JAVA_HOME powinno byćexport JAVA_HOME="/Library/Java/JavaVirtualMachines/jdk1.7.0_45.jdk/Contents/Home"
— Stephan Windmüller

1
Zainstalowałem jdk7u45 z Oracle i nadal używam eksportu JAVA_HOME = $ (/ usr / libexec / java_home) w moim profilu bash. jdk7u45 działa bardzo dobrze, włączając panel preferencji systemu Java. Teraz aktualizuję do jdk7u51.
— MiB

2
Musiałem dodać export JAVA_HOME="/Library/Internet Plug-Ins/JavaAppletPlugin.plugin/Contents/Home"do ~ / .profile zamiast ~ / .bashrc lub ~ / .bash_profile, aby uzyskać tę pracę.
— LarS

64

Właściwym miejscem do pobrania JDK dla Java 7 są Java SE Downloads .

Wszystkie inne linki podane powyżej, o ile mogę powiedzieć, albo dostarczyć JRE lub Java 6 pobrań (nawiasem mówiąc, jeśli chcesz uruchomić Eclipse lub innych IDE, jak IntelliJ IDEA , trzeba będzie JDK, nie JRE ).

Jeśli chodzi o IntelliJ IDEA - nadal poprosi Cię o zainstalowanie Java 6, ponieważ najwyraźniej wymaga starszego modułu ładującego lub coś takiego: po prostu postępuj zgodnie z instrukcjami, gdy pojawi się okno dialogowe i zainstaluje JDK 6 we właściwym miejscu.

Następnie musisz wykonać czynności sudo ln -snfwymienione w powyższej odpowiedzi:

sudo ln -nsf /Library/Java/JavaVirtualMachines/jdk1.7.0_45.jdk/Contents \
    /System/Library/Frameworks/JavaVM.framework/Versions/CurrentJDK

(skopiowano tutaj, ponieważ wspomniano, że „powyżej” może w końcu nie mieć sensu, ponieważ odpowiedzi są sortowane ponownie).

Ustawiłem też, JAVA_HOMEaby wskazywał, gdzie jdk_1.7.0_xx.jdkzostał zainstalowany:

export JAVA_HOME="/Library/Java/JavaVirtualMachines/jdk1.7.0_45.jdk/Contents/Home"

Następnie dodaj to do PATH:

export PATH=$JAVA_HOME/bin:$PATH

Alternatywą jest poruszanie się za pomocą szalonego labiryntu hiperłączy Apple, ale szczerze mówiąc, życie jest zbyt krótkie, aby przeszkadzać.


4
Zobacz mój komentarz do innej odpowiedzi, który może być lepszym sposobem na uzyskanie tej ścieżki.
— Ilkka

1
Ponieważ ta odpowiedź ma więcej głosów pozytywnych, fragment, który mówi sudo ln -snfw powyższej odpowiedzi, nie jest już dokładny. To tak naprawdę odnosi się do odpowiedzi pana Ronalda
— Karthica Raghupathi

@KarthicRaghupathi Nie jestem pewien, czy w pełni rozumiem komentarz (użycie thisi thatjest nieco mylące), ale nadal potrzebujesz dowiązania symbolicznego z miejsca / Sytem / Library / etc do faktycznego miejsca, w którym Oracle instaluje JVM (/ Library / etc .) lub aplikacje nie będą mogły znaleźć środowiska wykonawczego Java.
— Marco Massenzio,

@Marco Teraz, kiedy o tym wspominasz, kiedy czytam swój komentarz, nie ma to większego sensu. :) Pozwól mi wyjaśnić. W swojej odpowiedzi piszesz „Potem będziesz musiał zrobić sudo ln -snfwspomniane w powyższej odpowiedzi;”. Odpowiedzi przesuwają się w górę lub w dół w zależności od liczby głosów, które otrzymują. Moim zamiarem było jedynie bezpośrednie odniesienie do odpowiedzi, która zawierała sudo ln -snfpolecenie.
— Karthic Raghupathi

Edytowane - ale nie jestem pewien, czy tak naprawdę dzieje się zmiana kolejności: wszystkie wydają się być tam, gdzie były, niezależnie od pozytywnych opinii. NVM
— Marco Massenzio,

14

Pobrałem i zainstalowałem JDK 1.7 z Oracle . W konsoli / w terminalu Java 7 działa dobrze.

Kiedy uruchamiam program Java (taki jak Eclipse ) za pośrednictwem GUI, otrzymuję:

Aby otworzyć „Eclipse.app”, potrzebujesz środowiska wykonawczego Java SE 6. Czy chcesz go teraz zainstalować?

Ponieważ nie chciałem instalować starej wersji Java, zastosowałem następujące obejście:

sudo ln -nsf /Library/Java/JavaVirtualMachines/jdk1.7.0_45.jdk/Contents /System/Library/Frameworks/JavaVM.framework/Versions/CurrentJDK

Kredyty dla monkehWorks .


1
Muszę używać ln -snfbo mam Operation not permittedzln -sf
— Lars Blumberg

Dzięki, zredagowałem odpowiedź i dodałem opcję -n do polecenia ln.
— Pan Ronald

+1 Dokładnie to, czego szukałem. Dzięki! Interfejs CLI uzyskiwał odniesienie do JDK 7 po instalacji. Ten krok był jednak niezbędny, aby aplikacje GUI mogły pobrać poprawny pakiet JDK.
— Karthic Raghupathi,

Miałem nadzieję, ale mi się nie udało. Android Studio 0.3.2 nalega na „pobranie Java 6”, czego nie zamierzam robić. Oracle Java 7 JDK jest zainstalowany.
— akauppi

Potrzebujesz 64-bitowej wersji Eclipse. Wersja 32-bitowa wymaga Apple Java.
— Thorbjørn Ravn Andersen

4

Ten błąd występuje, ponieważ plik listy IntelliJ IDEA wymaga Java w wersji 1.6 *. Aby rozwiązać ten problem, zamień 1.6 * na 1.8 *.

<key>JVMOptions</key>
<dict>
    <key>ClassPath</key>
      ...

    <key>JVMVersion</key>
    <string>1.8*</string>

    <key>MainClass</key>
    <string>com.intellij.idea.Main</string>
    <key>Properties</key>
<dict>

Zrobiło to dla mnie. Mój problem polegał na tym, że kiedy zaktualizowałem system do OSX 10.9, nadal mogłem uzyskać dostęp do Java z terminala i wszystkiego innego (w tym zaćmienie działało poprawnie). Tylko Android Studio powodowało ten błąd.
— ucsunil

Nie działało to dla mnie w systemie OS X 10.10.1, narzeka, że ​​żadna wersja 1.8 nie jest dostępna (nawet jeśli JRE 8 jest poprawnie zainstalowany).
— Emmanuel Bourg

Czy sprawdziłeś, czy JAVA_HOME jest ustawiony?
— Fabio Fumarola,

3

PO sugerowało, że Java 7 była potrzebą. I Java 6 w rzeczywistości nie jest już „obsługiwana”, więc 7 to wersja, którą powinieneś zainstalować w tym momencie, chyba że masz obawy dotyczące starszych aplikacji.

Możesz go pobrać tutaj: http://java.com/en/download/mac_download.jsp?locale=en


Nie należy zakładać, że obecna dystrybucja Java 6 firmy Apple nie jest obsługiwana.
— Graham Perrin

Umieściłem słowo „obsługiwane” w cudzysłowach, aby uniknąć próby wyjawienia skomplikowanego problemu. Opłaty Oracle za wszelkie wsparcie w wysokości 6 ... i ta opłata za obsługę logicznie dotyczyłaby również Apple; więc Apple jest „samodzielnie” bez umowy. Czy mają jeden i planują działać przez łaty dla MacOSX? Czy umowa nadal dopuszcza ponowną dystrybucję? Teraz są 2 aktualizacje Java 7 od Oracle od ostatniej aktualizacji Apple'a do 6. W przeszłości wydawały się one krok po kroku. Być może wniebowzięcie; Bezpieczne założenie? Na to wygląda.
— Rondo

3

Moje doświadczenie z aktualizacją Java SDK na OS X 10.9 było znacznie łatwiejsze.

Pobrałem najnowszą wersjęJava SE Development Kit 8 z pobrań SE i zainstalowałem plik .dmg. Podczas wpisywania java -versionterminala wyświetlane były:

wersja java „1.8.0_11”

Środowisko wykonawcze Java (TM) SE (kompilacja 1.8.0_11-b12)

64-bitowa maszyna wirtualna serwera Java HotSpot ™ (kompilacja 25.11-b03, tryb mieszany)



1

Z PO:

W końcu ponownie go zainstalowałem z Java dla OS X 2013-005. To rozwiązało ten problem.


1

Ten błąd oznacza, że ​​Java nie jest poprawnie zainstalowana.

1) brew cask install java (No need to install cask separately it comes with brew)

2) java -version

java version "1.8.0_131"
Java(TM) SE Runtime Environment (build 1.8.0_131-b11)

PS - Co to jest beczułka? Homebrew-Cask rozszerza Homebrew i rozwiązuje problem związany z wykonywaniem dodatkowego polecenia - „Aby zainstalować, przeciągnij tę ikonę…” po zainstalowaniu aplikacji za pomocą Homebrew .

Uwaga: ten problem nie jest specyficzny dla Mavericks, otrzymasz prawie wszystkie OS X, w tym EL Capitan.


0

Nie ma potrzeby instalowania JDK, który jest zestawem programisty , tylko JRE, które jest środowiskiem wykonawczym .


6
To prawda. Jednak to, co Apple zapewnia, to JDK, a środowisko JRE firmy Oracle jest dostępne tylko dla wtyczki internetowej, javapolecenie nie jest automatycznie łączone w całym systemie, więc nadal widzisz komunikat „Brak środowiska wykonawczego Java z prośbą o instalację”. podczas pisania java -versionw terminalu.
— Ngoc Pham
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.