Jak używać JDK 7 w systemie Mac OSX?

107

Chciałbym używać WatchService API, jak wspomniano w tym linku: http://download.oracle.com/javase/tutorial/essential/io/notification.html

Po przeczytaniu dowiedziałem się, że WatchService jest częścią klasy NIO, która jest zaplanowana na JDK 7. Jest więc w wersji beta. W porządku.

http://jdk7.java.net/download.html zawiera pakiet JDK, który pobrałem i rozpakowałem. Mam kilka folderów. Nie wiem, co z nimi zrobić.

Potem przeczytałem trochę więcej i odkryłem, że pewna fajna grupa ludzi stworzyła JDK 7 jako plik binarny, więc ktoś taki jak ja może go łatwo zainstalować. Nazywa się Open JDK: http://code.google.com/p/openjdk-osx-build/

Więc pobrałem plik .dmg i zainstalowałem go. Następnie otwieram „Java Preference” i widzę, że jest dostępny OpenJDK7.

Więc teraz czuję, że mogę zacząć wypróbowywać WatchService API. Z samouczka w pierwszym linku autor dał plik .java, aby go najpierw przetestować i upewnić się, że działa. Oto link do pliku: http://download.oracle.com/javase/tutorial/essential/io/examples/WatchDir.java

Więc uruchamiam Eclipse (właściwie używam STS) i tworzę nowy projekt Java i wybieram JaveSE-1.7 w "użyj środowiska wykonawczego JRE:". W folderze src skopiowałem i wkleiłem plik WatchDir.java.

I wciąż widzę mnóstwo falistych czerwonych linii. Wszystkie pliki „import.java.nio. *” Są czerwone i nie mogę ich uruchomić jako aplikacji Java.

Co muszę zrobić?

okysabeni
źródło
Czy możesz go uruchomić i skompilować na konsoli?
dmeister
Masz na myśli: $ javac WatchDir.java, a następnie $ Java WatchDir? Spróbuję tego. Dzięki! Chociaż chciałbym, aby był dostępny w Eclipse IDE.
okysabeni
1
Od dziś dostępna jest oficjalna wersja Oracle - Java SE 7u4
mmmmmm
Upewnij się, że używasz 64-bitowego Eclipse. Nie udało mi się uruchomić 32-bitowego na 1.7 jvm z dowolnymi opcjami.
tuxSlayer
Aktualizacja: program Java 7 dobiega końca . Aby przejść do wersji Java z obsługą długoterminową (LTS), zobacz: Jak zainstalować Javę 8 na komputerze Mac i uzyskać Javę 11 dla macOS? .
Basil Bourque

Odpowiedzi:

61

Oracle wydała JDK 7 dla OS X .

Mukund
źródło
Zaktualizuję odpowiedź o najnowsze informacje. Daj mi znać, jeśli to nie jest właściwa odpowiedź. Dzięki.
okysabeni
@Yko - spójrz na BasilBourque, aby uzyskać najbardziej szczegółowe informacje (lub moje dla pierwszej wersji 4 Oracle JDK7)
mmmmmm
12
Zauważ, że aby aplikacje korzystały z Javy 1.7 firmy Oracle zamiast Javy 1.6 firmy Apple, musiałem uruchomić /Library/Java/JavaVirtualMachines/1.7.0.jdki przeciągnąć „Java SE 7” na początek listy w zakładce „Ogólne”. Będzie to również javacwskazywać na wersję Java 1.7 podczas uruchamiania terminala.
sschuberth
2
Oracle JDK7 nie działa w systemie Snow Leopard. Mówi, że jest obsługiwany tylko przez Lion.
Sanghyun Lee
@Sangdol - Tak, implementacja Java firmy Oracle działa tylko w Lion i nowszych wersjach. Jak zauważyłem w mojej odpowiedzi na to pytanie.
Basil Bourque
88

W ten sposób uzyskałem 1.7 do pracy z Eclipse. Mam nadzieję, że to pomoże.

  1. Pobrałem najnowszy uniwersalny JDK OpenJDK 1.7 (32/64 bity) z gałęzi Mac OS / X ze strony http://www.oracle.com/technetwork/java/javase/downloads/jdk7-downloads-1880260.html
  2. skopiowałem jdk do / Library / Java / JavaVirtualMachines / obok domyślnej wersji 1.6.0
  3. W Eclipse> Preferences> Java> Installed JREs dodajesz nowy, typu MacOS X VM i ustawiasz katalog główny jako /Library/Java/JavaVirtualMachines/1.7.0.jdk/Contents/Home i nazwij Java SE 7 (OpenJDK)
  4. Kliknij Finish
  5. Ustaw dodane środowisko JRE jako domyślne

to powinno być to :)

wektory
źródło
dzięki, moja elcipe całkowicie się zawiesiła .. więc próbowałem użyć sdk 1.7 działał idealnie! : =)
cV2
1
Ten projekt (openjdk-osx-build) został zamknięty i nie oferuje już żadnych plików do pobrania.
aroth
krok 2 może być po prostu: uruchom pobrany plik jdk-7u40-macosx-x64.dmg i automatycznie doda plik do ścieżki
Michał
Podczas dodawania zainstalowanego środowiska JRE do Eclipse, Eclipse może również „wyszukiwać” zainstalowane środowiska JRE. W ten sposób znalazłem moją istniejącą instalację 1.7 JDK.
jvriesem
Zauważ, że instalator oracle jdk 1.7 umieści maszynę wirtualną w / Library / Java / JavaVirtualMachines / for you (marzec 2014)
Chris Thorne
55

Java 9, 10, 11

Lata temu Apple dołączył do OpenJDK projektu , przenosząc swój poprzednio zastrzeżony kod JVM specyficzny dla macOS jako bezpłatne oprogramowanie typu open source. Firma Apple zaprzestała dystrybucji własnej JVM / JDK marki, polegając na markowych wydaniach Oracle, które zawierają wersję dla macOS.

Firma Oracle niedawno ogłosiła zamiar dostosowania swojej wersji JVM oznaczonej marką Oracle do zgodności z projektem OpenJDK, z praktycznie taką samą bazą kodu. Firma przekazała nawet swoje wcześniej komercyjne narzędzia, Flight Recorder i Mission Control , na rzecz projektu OpenJDK. Jest to część przejścia do nowego planu szybkiego „pociągu wydań”, który ma przewidywać zaplanowane wersje Java i OpenJDK. W szczególności okresy bezpłatnych publicznych aktualizacji zostały teraz skrócone. Zobacz to ogłoszenie 2017-09 i ten post autorstwa Marka Reinholda .

W rezultacie użytkownicy Javy w macOS mają do wyboru dostawców implementacji Javy. W tym momencie co najmniej trzy źródła są oparte na OpenJDK dla macOS:

  • Wersje JDK i JRE firmy Oracle z opcjonalnym, płatnym wsparciem technicznym.
  • Azul Systems wydaje:
    • Zulu linia nieodpłatnych kosztów JVMs z opcjonalnym płatnego wsparcia.
    • Zing linię JVMs handlowych ze specjalnymi funkcjami, takimi jak alternatywny garbage collector.
  • Kod źródłowy OpenJDK , samodzielna kompilacja i instalacja (być może nie jest praktyczne dla większości z nas).

W międzyczasie IBM przekazał kod maszyny JVM Fundacji Eclipse, która jest teraz objęta projektem OpenJ9 . Zastanawiam się, czy mogą również obsługiwać wydanie macOS, chociaż jest za wcześnie, aby to stwierdzić.

Osobiście z powodzeniem używam wersji Zulu Java 10.0.1 firmy Azul na macOS High Sierra z powodzeniem z IntelliJ 2018.2 do tworzenia aplikacji internetowych opartych na Javie z Vaadin .

Instalacja / demontaż

Zarówno Oracle, jak i Azul zapewniają całkowicie łatwe w użyciu instalatory do zainstalowania JVM / JDK na komputerze Mac. Sprawdź swoją instalację, używając aplikacji Terminal.app (lub odpowiednika), aby wpisać i uruchomić:

java -version

Znajdziesz instalacje Java w tym folderze na poziomie głównym dysku (nie w folderze domowym):

/ Library / Java / JavaVirtualMachines

Każda wersja od każdego dostawcy znajduje się tam, w oznaczonym folderze zagnieżdżonym. Możesz usunąć dowolną instalację, po prostu usuwając zagnieżdżony folder dla tej wersji i podając hasło systemowe po wyświetleniu monitu.

Java 8

Możesz pobrać pakiet Java Development Kit (JDK) dla języka Java 8 dla obsługiwanych wersji systemu Mac OS X:

  • Mountain Lion (10.8.3+)
  • Mavericks (10,9)
  • Yosemite (10.10)
  • El Capitan (10.11)

Każdą zainstalowaną wersję maszyny JVM można znaleźć tutaj:

/Library/Java/JavaVirtualMachines

Więcej instrukcji i często zadawanych pytań można znaleźć w tym przewodniku Oracle .

Java 7

Dla każdego wydania Java 7 od aktualizacji 4, wersja na Maca była gotowa wraz z innymi platformami. Działa na komputerach Mac ze sprzętem 64-bitowym w systemie Lion (10.7.3+), Mountain Lion (10.8.3+) i Mavericks (10.9.x).

Firma Oracle ogłosiła oficjalne wydanie pakietu JDK dla Java SE 7 Update 4 w systemie Mac OS X (Lion) 26.04.2012. Nie ma już potrzeby sztuczek omówionych na tej stronie.

Instalacja jest prosta zgodnie z poniższymi instrukcjami :

  1. Pobierz ze zwykłego miejsca w witrynie internetowej Oracle.
  2. Zamontuj DMG.
  3. Uruchom instalator.

To wydanie ma kilka ograniczeń, w szczególności brak wsparcia dla Java Web Start i wtyczki Java do przeglądarek internetowych. Wsparcie to jest spodziewane jeszcze w tym roku.

Po instalacji przeczytaj JDK for Mac ReadMe. Co najważniejsze, jeśli chcesz, aby Java 7 była domyślną, przeciągnij ją na górę listy w aplikacji Preferencje Java znajdującej się w folderze Narzędzia.

Mac OS X z łatwością obsługuje jednocześnie wiele maszyn JVM. Każdy znajduje się teraz tutaj:

/Library/Java/JavaVirtualMachines

Gratulacje dla zespołów Apple i Oracle za ich osiągnięcie. Ten maniak doznaje dreszczyku emocji, widząc Mac OS X na liście „ Certyfikowanej konfiguracji systemu ”.

Wskazówka: aby uruchomić Eclipse na komputerze Mac z zainstalowaną tylko Javą 7, otwórz plik aliasu o nazwie eclipse zamiast pliku o nazwie Eclipse.app .

Java 6

Apple w dalszym ciągu dostarcza aktualną implementację języka Java 6 dla wszystkich wersji systemu Mac OS X, aż do Mountain Lion.

Jeśli zrobisz coś, co wymaga języka Java, na przykład wpisz „java -version” w Terminal.app, pojawi się okno dialogowe z propozycją zainstalowania Java. Jeśli się zgodzisz, instalacja przebiega automatycznie, podobnie jak w przypadku innych „Aktualizacji oprogramowania” firmy Apple.

Znajdziesz Javę zainstalowaną w tej lokalizacji, inną niż Java 7 i 8:

/System/Library/Java/JavaVirtualMachines

Java 6 dobiegła końca z Oracle od 2013-02 (chyba że masz komercyjną umowę pomocy technicznej z Oracle). Więc powinieneś przejść do Java 7 lub 8.

Testowanie nowej wersji

W Terminal.app wpisz, java -versionaby sprawdzić, która wersja jest bieżącą wersją domyślną.

Usuwanie starych wersji

Po zainstalowaniu nowej wersji możesz odwiedzić folder opisany powyżej, aby usunąć stare wersje. Przenieś folder do Kosza i podaj swoje hasło systemowe, aby zakończyć przenoszenie.


Nawiasem mówiąc, Apple udostępnia listę mailingową dotyczącą problemów technicznych programistów związanych z Javą na OS X.

Basil Bourque
źródło
Dzięki, to zadziałało świetnie dla mnie. Trzeba to też zmienić w preferencjach.
@Tony: Tak, zmiana Twoich preferencji jest wspomniana w czwartym akapicie.
Basil Bourque
Nie działa. Uruchamiam instalator i wyświetla komunikat „Sukces”, ale wydaje się, że nic nie jest instalowane. /System/Library/Java/JavaVirtualMachineszawiera tylko Java 6 JDK.
aroth
4
@aroth - (a) Zajrzyj /Library/Java/JavaVirtualMachines(nie /System). (b) Czy przeczytałeś dokumentację instalacji Oracle ReadMe, i ustawiłeś Preferenceszgodnie z opisem w mojej odpowiedzi powyżej?
Basil Bourque
1
W Javie 7 r21 widzę /Library/Java/JavaVirtualMachines/jdk1.7.0_21.jdk/. Dostęp do panelu sterowania Java można teraz uzyskać przez Preferencje systemowe (OSX 10.8.3)
Sofi Software LLC
17

Łatwym sposobem na zainstalowanie Javy 7 na komputerze Mac jest użycie Homebrew , dzięki wtyczce Homebrew Cask (która jest teraz instalowana domyślnie).

Uruchom to polecenie, aby zainstalować Javę 7:

brew cask install caskroom/versions/java7
Andrzej
źródło
„Błąd: brak dostępnych beczek na caskroom / wersje / java7”
jrochkind
@jrochkind Może Twój caskroom/versionsjest nieaktualny? Na pewno jest tutaj: github.com/caskroom/homebrew-versions/blob/master/Casks/ ...
Andrew
@jrochkind Spróbuj uruchomić brew tap caskroom/versionsprzed uruchomieniem polecenia instalacji
Andrzej
@jrochkind Jeśli to nie zadziała, zapoznaj się z dokumentacją beczki lub zgłoś
Andrew
13

Weź beczkę

brew tap caskroom/cask

Zainstaluj java7:

brew tap caskroom/versions
brew cask install java7

(Miałem trudności ze znalezieniem linku do pobrania java7 w witrynie oracle, ponieważ „polecają” java8)

EDYCJA styczeń 2018 (jak wskazał Ankur ):

Użyj beczki zulu7 . Zulu to certyfikowana kompilacja OpenJDK wyprodukowana przez Azul Systems, która powinna istnieć przez długi czas (wciąż oferują nawet kompilacje JDK6).

brew cask install caskroom/versions/zulu7
abe312
źródło
Przyjęta odpowiedź na to pytanie jest nieaktualna. Wydaje się, że jest to obecnie najlepszy sposób na zainstalowanie Javy 7.
Tim Dean
ta beczka została usunięta (patrz: github.com/caskroom/homebrew-versions/pull/3914 ). sugerowaną alternatywą jest użycie zulu7.
Ankur,
9

Wiem, że niektórzy mogą chcieć mnie uderzyć za ponowne otwarcie starego postu, ale jeśli tak uważasz, zrób to, mam tylko nadzieję, że może to pomóc komuś innemu w próbie ustawienia JDK 7 na Mac OS (używając IntelliJ).

To, co zrobiłem, aby to działało na moim komputerze, to:

  • postępował zgodnie z instrukcjami dotyczącymi Oracle JDK7 Mac OS X Port dla ogólnej instalacji
  • w IntelliJ otwórz / utwórz nowy projekt, dzięki czemu możesz dodać nowy SDK (Plik> Struktura projektu)
  • wybierz Ustawienia platformy> Zestawy SDK, naciśnij znak „+” (plus), aby dodać nowy pakiet SDK
  • wybierz JSDK i przejdź do / Library / Java / JavaVirtualMachines / JDK 1.7.0 Developer Preview.jdk / Contents / Home. Nie pomyl go z / Users / YOUR_USERNAME / Library / Java / . Spowoduje to połączenie 4 plików JAR z katalogu „lib” (dt.jar, jconsole.jar, sa-jdi.jar i tools.jar)
  • będziesz musiał również dodać pliki JAR z / Library / Java / JavaVirtualMachines / JDK 1.7.0 Developer Preview.jdk / Contents / Home / jre / lib (charsets.jar, jce.jar, JObjC.jar, jsse.jar, management-agent .jar, resources.jar i rt.jar)
peter_budo
źródło
6

Możliwe, że nadal musisz dodać JDK do Eclipse (STS). To, że pakiet JDK jest w systemie, nie oznacza, że ​​Eclipse wie, gdzie go znaleźć.

Przejdź do opcji Preferencje> Java> Zainstalowane środowiska JRE

Jeśli nie ma wpisu dla JDK 1.7, dodaj go. Będziesz musiał wskazać Eclipse miejsce, w którym zainstalowałeś swój 1.7 JDK.

Jeśli Eclipse nie może znaleźć środowiska JRE zgodnego z 1.7, domyślam się, że używa on tylko domyślnego środowiska JRE, a to prawdopodobnie nadal wskazuje na Javę 1.6, co powodowałoby powstawanie czerwonych falistych linii.

Jon Quarfoth
źródło
Dobra decyzja! Ale potrzebuję trochę dalszych wskazówek. Wchodzę pod Zainstalowane JRE -> Dodaj i wskaż ... / jdk1.7.0 / jre i znalazłem kilka plików JAR. Klikam Zakończ. Na szczęście próbuje się zbudować, ale teraz jest napisane ... / jdk1.7.0 / jre / bin / java: nie można wykonać pliku binarnego. Co to znaczy?
okysabeni
Nie jestem do końca pewny. Możesz spróbować wskazać eclipse na podstawowy katalog jdk zamiast katalogu jre. Myślę, że tak zwykle robiłem to w systemie Windows, chociaż nigdy nie wyłączałem domyślnego JDK na moim Macu. Jeśli to nie zadziała, możesz spróbować zainstalować inną dystrybucję JDK 7 - na stronie openjdk-osx-build dostępnych było kilka różnych, może złapałeś taką, która nie jest kompatybilna z twoim systemem?
Jon Quarfoth,
Próbowałem tego. Daje mi błąd „
Element
6

po zainstalowaniu 1.7jdk z oracle zmieniłem moje skrypty bash, dodając:

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

a następnie uruchomienie java -versionpokazało właściwą wersję.

Dustin Getz
źródło
1

Instrukcje peter_budo działały idealnie. Musiałem dodać słoiki w / Library / Java / JavaVirtualMachines / JDK 1.7.0 Developer Preview.jdk / Contents / Home / jre / lib / do moich bibliotek projektów IntelliJ. Teraz działa jak urok. Zauważ, że nie potrzebowałem mojego IDE do działania pod 1.7; raczej musiałem być w stanie skompilować i uruchomić wersję 1.7. Najprawdopodobniej będę nadal używać środowiska JRE firmy Apple do uruchamiania IDE, ponieważ jest prawdopodobnie bardziej stabilne pod względem procedur graficznych (Swing, AWT). Podobnie jak OP, bardzo chciałem przetestować nowe API NIO2. Jak dotąd wygląda dobrze. Dzięki, Peter.

user1092781
źródło
1

To, co zadziałało dla mnie w Lion, to instalacja JDK7_u17 z Oracle, a następnie edycja ~ / .bash_profile, aby uwzględnić: eksport JAVA_HOME = / Library / Java / JavaVirtualMachines / jdk1.7.0_13.jdk / Contents / Home

user1015892
źródło
0

Zaktualizowałem do Yosemite, a Android Studio nie wyczyścił moich projektów ani nie uruchomił ich na urządzeniu wirtualnym lub rzeczywistym z powodu następującego błędu:

Failed to complete Gradle execution.Cause:Supplied javaHome is not a valid folder. You supplied: /System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home

Po kilku badaniach i rozwiązywaniu problemów stwierdziłem, że pliku JDK wskazywanego w „/System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home” nie ma; brakowało wszystkich elementów „JavaVirtualMachines / 1.6.0.jdk / Contents / Home” w „/ System / Library / Java”. Więc skopiowałem „JavaVirtualMachines / 1.6.0.jdk / Contents / Home” z „/ Library / Java /” do „/ System / Library / Java /” i cha ching! Wróciłem do biznesu.

żar gaszący ogień
źródło
0

Teraz użyj polecenia

Aktualizacja 2020: 04

Aby zainstalować Java7 z uruchomionym homebrew:

brew tap homebrew/cask-versions
brew cask install java7

Mam nadzieję, że to pomoże.

superup
źródło