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?

użytkownik2909913
źródło
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.

Chłopak
źródło
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
analog
źródło
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ć.

Marco Massenzio
źródło
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 .

Pan Ronald
źródło
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>
Fabio Fumarola
źródło
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

Rondo
źródło
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)

Muhammad Reda
źródło
1

Z PO:

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

Eric Leschinski
źródło
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.

sapy
źródło
0

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

dmz
źródło
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