Jak zainstalować konkretny JDK na Mac OS X?


197

Chcę zainstalować konkretny pakiet JDK (na przykład najnowszy). W tym celu poszedłem na stronę główną pobierania JDK: http://java.sun.com/javase/downloads/index.jsp . Szukałem wersji na komputery Mac, ale jestem nieco zaskoczony, widząc tylko wersje do pobrania dla systemów Linux, Windows i Solaris ...

Oto wiadomość dla komputerów Mac:

„Apple Computer dostarcza własną wersję Java. Skorzystaj z funkcji aktualizacji oprogramowania (dostępnej w menu Apple), aby sprawdzić, czy masz najnowszą wersję Java dla komputera Mac”.

OK ALE ... kiedy aktualizuję Javę na Macu, mam JRE, a nie JDK ...

Nie rozumiem, dlaczego nie istnieje wersja JDK, którą można łatwo pobrać / zainstalować (jak słoik do rozpakowania?) Na komputery Mac ...


70
Znane pytanie ... powinieneś zaakceptować odpowiedź. ;)
Gary

Fink zapewnia na to rozwiązanie.
Daniel

10
Zauważ, że Java 7 jest teraz dostarczana przez Oracle - większość odpowiedzi i pytania odnoszą się do wcześniejszego stanu
mmmmmm

Odpowiedzi:


44

W komentarzu pod odpowiedzią @ Thilo @mobibob zapytał, jak ustawić JAVA_HOME w pliku .bash_profile na komputerze Mac. Odpowiedź:

export JAVA_HOME=`/usr/libexec/java_home` 

Spowoduje to dynamiczne przypisanie do JAVA_HOME lokalizacji pierwszego JDK wymienionego na karcie „Ogólne” narzędzia „Preferencje Java”.

Zobacz Apple Technical Q&A 1170: https://developer.apple.com/library/content/qa/qa1170/_index.html

EDYTOWAĆ:

Jeśli wolisz wstawiać nawiasy okrągłe w celu zastąpienia poleceń, działa to również:

export JAVA_HOME=$(/usr/libexec/java_home)

20

Jak głosi komunikat, musisz przejść do Apple, a nie do Sun, na Javę na Macu. O ile mi wiadomo, Apple JDK 6 jest domyślnie instalowany w systemie Mac OS X 10.6 (Snow Leopard). Być może trzeba zainstalować narzędzia programistyczne z instalacyjnej płyty DVD z systemem Mac OS X (narzędzia programistyczne są opcjonalną instalacją z płyty DVD z systemem operacyjnym).

Zobacz: http://developer.apple.com/java/

UWAGA Ta odpowiedź z 16 października 2009 r. Jest obecnie nieaktualna; możesz pobrać JDK dla Mac OS X ze zwykłej strony pobierania JDK na stronie Oracle.



10

Kupiłem wczoraj MacBooka Pro ( Mac OS X 10.8 (Mountain Lion)) i domyślnie nie ma zainstalowanego JDK ...

Oprócz javaca odkryłem, że nie ma zainstalowanych pakietów takich jak SVN . Okazuje się, że wszystko możesz pobrać ze strony programisty Apple (musisz zarejestrować się przy pomocy AppleID). SVN jest częścią pakietu „Narzędzia wiersza poleceń”.

Wpisz opis zdjęcia tutaj

Oto, co dzieje się na świeżym MacBooku:

Wpisz opis zdjęcia tutaj

Wpisz opis zdjęcia tutaj

Mam nadzieję, że pomoże to innym początkującym, takim jak ja;)


5
+1. Sytuacja trochę się zmieniła w przypadku Mountain Lion. Zwróć też uwagę, że chociaż Apple oferuje opcjonalną instalację Java, jest to tylko starsza wersja Java 6. Obecne wersje Java dla OS X są teraz dystrybuowane przez samą Oracle.
Thilo,


4

Wyjaśnienie jest takie, że JDK jest nieco specyficzny i nie zawiera biblioteki tools.jar . Potrzebuję tej biblioteki, a JDK dla Maca jej nie zapewnia:

(Por. Http://developer.apple.com/mac/library/documentation/Java/Conceptual/Java14Development/02-JavaDevTools/JavaDevTools.html )

tools.jar nie istnieje. Klasy zwykle tutaj zlokalizowane są zamiast tego zawarte w klasach.jar. Skrypty oparte na istnieniu narzędzia.jar muszą zostać odpowiednio przepisane.

To jest do bani!


1
Ahhhhhhh !!! Jak odkryłeś, tools.jarjest już uwzględniony w środowisku wykonawczym dla Mac OS X. Dlatego szukanie tools.jarnie jest właściwym podejściem na Macu, aby wiedzieć, czy jest to JDK czy JRE :)
Pascal Thivent

Dziękuję za odpowiedź, masz rację. Musiałem zdobyć bibliotekę tools.jar dla konkretnego projektu, a dla mnie było to podejście do rozpoznania jdk;)
ajeanson 16.10.2009

4

Najprostszym sposobem jest użycie Homebrew . Zainstaluj Homebrew, a następnie:

brew tap caskroom/versions
brew cask install java7

Możesz wyświetlić listę wszystkich dostępnych wersji za pomocą następującego polecenia: brew cask search java


3

Kompilacja z -source 1.5 -target 1.5 (w środowisku JDK 6) honoruje tylko te elementy języka, które były w wersji 1.5 i wcześniejszych. Wspaniały. Ale i tak nie było żadnych zmian językowych w 6. Problem z tym podejściem (na Macu z wersją 1.6) polega na tym, że korzystanie z klas, które pojawiły się PO 1.5, nadal będzie się kompilować, ponieważ istnieją one w pliku rt.jar. Można więc uruchomić w środowisku env 1.5 i otrzymać kompilację, której nie znaleziono, bez uprzedniego ostrzeżenia. Odkryłem to na własnej skórze za pomocą javax.swing.event.RowSorterEvent / Listener. Oba wpisały „Od wersji 1.6”, ale nie zostały przechwycone przez -source 1.5



3

Począwszy od systemu Mac OS X 10.6 (Snow Leopard), można uruchomić Javę 6 w trybie 32-bitowym na komputerach Mac wyposażonych w procesor Intel 32-bitowy lub 64-bitowy .

Jeśli nie możesz zaktualizować systemu do wersji Snow Leopard, Soy Latte to wstępnie skompilowana wersja Java 6 dla 32-bitowego procesora Intel.



1

Myślę, że to inne pytanie dotyczące przepełnienia stosu może pomóc:

Jak zdobyć JDK 1.5 na Mac OS X

Mówi w zasadzie, że jeśli chcesz skompilować lub uruchomić aplikację Java ze starszą wersją JDK (na przykład 1.4 lub 1.5), możesz to zrobić za pomocą 1.6, ponieważ jest ona kompatybilna wstecz. Aby to zrobić, musisz dodać parametr -source 1.5i / lub -target 1.5w opcjach javac lub w swoim IDE.


1

JDK to Java Development Kit (używany do tworzenia oprogramowania Java).

JRE to środowisko wykonawcze Java (używane do uruchamiania dowolnego pliku .jar „Oprogramowanie Java”).

JDK zawiera w sobie środowisko JRE.

W systemie Windows podczas aktualizacji Java środowisko JRE jest automatycznie aktualizowane.

Na komputerach Mac nie masz oddzielnego środowiska JRE, ale masz je wewnątrz JDK, więc po aktualizacji Java zaktualizuje środowisko JRE znajdujące się w JDK; nie instaluje dla ciebie JDK. Musisz go zdobyć skądinąd.


1
Myślę, że miałeś na myśli JDK zamiast IDK. Próbowałem edytować, ale Stack Overflow powiedział, że zmiany muszą być dłuższe niż 6 znaków. Wystarczy wspomnieć o tym, aby uniknąć zamieszania.
webworm

1

Sprawdź to niesamowite narzędzie sdkman do zarządzania jdk i innymi narzędziami związanymi z jdk!

na przykład

$sdk list java
$sdk install java <VERSION>

1

Ponieważ większość odpowiedzi jest nieaktualna, oto, co działa na koniec 2018 r. Przy założeniu, że

  1. Chcesz zainstalować OpenJDK w wersji GPL. [0]
  2. Nie chcesz instalować Homebrew

W takim przypadku pobierz żądaną wersję z jednej z wielu dostępnych, darmowych wersji OpenJDK, np .:

Niektóre z nich obejmują instalatory, ale jeśli nie, możesz wykonać następujące czynności. Zakładając tutaj wersję 11.0.1 dla komputerów Mac. W swojej ulubionej powłoce uruchom:

tar -xzf openjdk-11.0.1_osx-x64_bin.tar.gz
sudo mv jdk-11.0.1.jdk /Library/Java/JavaVirtualMachines
# Fix owner and group
sudo chown -R root:wheel /Library/Java/JavaVirtualMachines/jdk-11.0.1.jdk
# (Optional) Check if the new JDK can be found
/usr/libexec/java_home
=> /Library/Java/JavaVirtualMachines/jdk-11.0.1.jdk/Contents/Home

[0] Należy pamiętać, że JDK marki Oracle ma znaczące ograniczenia licencyjne, które pozwalają na jego użycie w zasadzie tylko do testowania, tj. Nie do produkcji. Jeśli nie masz umowy o wsparcie z Oracle, użycie JDK wydaje mi się ryzykowne, zwłaszcza że różnice w OpenJDK są minimalne .

Edycja: dodano więcej opcji


1
Sugeruję, abyś wskazał pobieranie z AdoptOpenJDK.net , a następnie postępował zgodnie z instrukcjami, unikając w ten sposób problemów prawnych i związanych z obsługą wydawanych przez Oracle.
Basil Bourque,

0

Z reguły nie można instalować innych wersji Javy na komputerze Mac niż te dostarczone przez Apple za pośrednictwem Aktualizacji oprogramowania. Jeśli potrzebujesz Java 6, musisz mieć 64-bitowy komputer Intel. Zawsze powinieneś mieć zainstalowaną Javę 5 i 1.4, a być może 1.3, jeśli masz przynajmniej OS X 10.4.

Jeśli masz BARDZO dużo smaru łokciowego i chcesz pracować z oprogramowaniem w wersji beta, możesz zainstalować OpenJDK pod OS X, ale nie sądzę, że chcesz tam iść.


Wiem, dlatego dodałem ten komentarz. Może powinienem napisać nieco dłuższy komentarz, aby przejść z linkiem :-)
Neeme Praks
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.