Jak mogę przełączać się między dwiema wersjami Java w Mountain Lion, gdy Preferencje Java zniknęły?

32

Mam dwie wersje Java zainstalowane z Mountain Lion:

Aktualizacja firmy Apple usuwa Preferencje Java . W innym pytaniu ktoś zastanawia się nad usunięciem tego narzędzia.

Moje pytanie jest inne:

  • Jak mogę przełączać się między dwiema wersjami, gdy Preferencje Java zniknęły?

Wcześniej korzystałem z narzędzia Apple do łatwego ustawiania preferencji Java. Bez tego narzędzia istnieje prosty i szybki sposób?

Maverik
źródło
Czy istnieje jakiś powód, dla którego nie można ponownie zainstalować Preferencji Java ?
chharvey
@ TestSubject528491 Jak to zrobić?
Maverik
Myślę, że to ci pomoże, jeszcze nie próbowałem tego na mojej maszynie. Patrz krok 12 i 13 z następującego linku wikihow.com/Install-Oracle-Java-on-Ubuntu-Linux . Możesz powtórzyć kroki, aby przejść między java .. mam nadzieję, że to ci pomoże ...
Dilip Rajkumar
@DilipRajkumar To jest dla Linuksa ....
Maverik
Przepraszam, niesłusznie założyłem, że polecenie linux będzie działać na Macu. Jeśli będę miał szczęście z innym rozwiązaniem, nie sugeruję ...
Dilip Rajkumar

Odpowiedzi:

12

Możesz potrzebować dwóch metod:

  • jeden, aby przełączyć wersję dla samej wtyczki apletu
  • inne podejście do zmiany wersji dla innych części środowiska JRE bez przełączania wersji wtyczki apletu.

Mój ostatni przypadek użycia :

  • Java 8 dla aplikacji, które nie używają wtyczki
  • Java 7 Update 9 dla wtyczki apletu.

Aby przełączyć wtyczkę apletu, ale nie inne części JRE / JDK z Java 8 na Java 7 Update 9

  1. zamknij przeglądarki internetowe i wszelkie inne aplikacje korzystające z Java lub wtyczki apletu Java
  2. zainstaluj JDK 8
  3. odłóż na bok wtyczkę
  4. zainstaluj JRE 7 Update 9 lub JDK 7 Update 09.

Odłożenie na bok: sugerowany ruch

sudo mv /Library/Internet\ Plug-Ins/JavaAppletPlugin.plugin /private/var/tmp

Jeśli planujesz często zmieniać , możesz wybrać inną tymczasową lokalizację.

Wynik

sh-3.2$ java -version
java version "1.8.0-ea"
Java(TM) SE Runtime Environment (build 1.8.0-ea-b58)
Java HotSpot(TM) 64-Bit Server VM (build 25.0-b02, mixed mode)
sh-3.2$ sw_vers
ProductName:    Mac OS X
ProductVersion: 10.8.2
BuildVersion:   12C60

W tym samym czasie:

Zrzut ekranu z weryfikacji przez Oracle wersji Java w Safari

Aby przełączyć wtyczkę apletu, ale nie inne części JRE / JDK z Java 7 Update 9 na Java 6 Update 37

Odpowiedzi pod:


Aby przełączyć JRE, ale nie wtyczkę apletu z Java 8 na Java 7 Update 9

Zainstaluj JDK 7 Update 09, a następnie JDK 8

  • system operacyjny i aplikacje będą domyślnie używać najlepszej wersji.

Zamknij wszystkie aplikacje korzystające z Java. Nie musisz wychodzić z przeglądarki.

Odłóż na bok jdk1.8katalog… z

/Library/Java/JavaVirtualMachines

  • system operacyjny i aplikacje będą korzystały z Java 7 Update 9.

Aby przełączyć JRE, ale nie wtyczkę apletu z Java 7 Update 9 na Java 6 Update 37

Zamknij wszystkie aplikacje korzystające z Java. Nie musisz wychodzić z przeglądarki.

Odłóż na bok jdk1.7katalog… z

/Library/Java/JavaVirtualMachines

  • system operacyjny i aplikacje będą korzystały z Java 6 Update 37.

Przykład

macbookpro08-centrim:~ gjp22$ java -version
java version "1.7.0_09"
Java(TM) SE Runtime Environment (build 1.7.0_09-b05)
Java HotSpot(TM) 64-Bit Server VM (build 23.5-b02, mixed mode)
macbookpro08-centrim:~ gjp22$ sudo mv /Library/Java/JavaVirtualMachines/jdk1.7.0_09.jdk /private/var/tmp
Password:
macbookpro08-centrim:~ gjp22$ java -version
java version "1.6.0_37"
Java(TM) SE Runtime Environment (build 1.6.0_37-b06-434-11M3909)
Java HotSpot(TM) 64-Bit Server VM (build 20.12-b01-434, mixed mode)

Ogólnie

W przypadku użytkowników systemu OS X niektóre informacje dostarczone przez Oracle są początkowo mylące:

… i tak dalej.

Prostota

Chociaż żadne z powyższych nie jest tak proste, jak przełączanie się z aplikacją Java Preferences zainstalowaną wcześniej przez Apple, stosunkowo proste podejście do odłogowania (bez potrzeby specjalnej deinstalacji) przypomina życzenie instalacji metodą przeciągnij i upuść… poprzednio wyrażone w obszar kompilacji openjdk-osx .

Ktoś może chcieć zbudować aplikację, ale nie powinienem zalecać używania dowiązań symbolicznych - działałoby, ale może być niespójne z przyszłymi metodami przeciągania i upuszczania do instalacji.

Notatki dodatkowe

W czasie pisania, najnowszych obsługiwanych wersji, dla których Oracle sprawia aktualizacje publicznie dostępne są (na platformach innych niż OS X) Java 6 Update 37 i (na platformach, w tym OS X) Java 7 Update, 9.

W związku z udostępnieniem większej liczby wersji prosimy odpowiednio zinterpretować tę odpowiedź.

Terminologia wersji Java w tej odpowiedzi jest zgodna z terminologią Centrum pomocy Java .

Graham Perrin
źródło
Czy naprawdę masz na myśli Java 8, czy jest to błąd? :-)
Maverik
1
Naprawdę ;-)… zobacz powiązane pytania, prawa kolumna.
Graham Perrin
4
Oto wskazówka, jeśli używasz JDK8 i chcesz często się przełączać. Wystarczy chmod 0000 katalog JDK8, aby go wyłączyć sudo chmod 0000 /Library/Java/JavaVirtualMachines/jdk1.8.0.jdk/i ponownie włączyć sudo chmod 0755 /Library/Java/JavaVirtualMachines/jdk1.8.0.jdk/.
Brett Ryan
1
Ostatnia sugestia @BrettRyan działała dla mnie idealnie. Myślę, że to najłatwiejszy sposób.
Artem
1
Dziękuję bardzo @BrettRyan, który był najprostszy !!! Proponuję autorowi odpowiedzi dodać ją jako alternatywę. Utworzyłem .sh w moim folderze domowym za pomocą poleceń i utworzyłem Automatora powiązanego z kluczem, który przełącza się z jednego na drugi. Niesamowity!
Panthro
29

Otwórz terminal, użyj tego polecenia:

/usr/libexec/java_home -v 1.6 

Możesz zmienić 1.6 na dowolną wersję java, której chcesz użyć, a polecenie wyświetli lokalizację, w której znajduje się ta wersja java. (tj .: /System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home)

wtedy możesz ustawić JAVA_HOME tak jak zwykle z wyjściem poprzedniego polecenia. to znaczy:

export JAVA_HOME=/System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home

Aby uprościć; coś takiego powinno działać:

export JAVA_HOME=$(/usr/libexec/java_home -v 1.6)

pamiętaj, aby sprawdzić wersję za pomocą:

java -version

Mam nadzieję, że to pomoże.

użytkownik2343996
źródło
4
Jest to najbardziej przydatna odpowiedź na ten problem, którą można znaleźć w dowolnym miejscu online. DZIĘKUJĘ CI!
SearchTools-Avi
1
Ok, TO powinna być zaakceptowana odpowiedź. Mam obowiązkowy plik JAR aktualizacji dla zainstalowanego serwera aplikacji, który będzie działał TYLKO na Javie 6. Dzięki temu mogłem przełączyć się na Javę 6, uruchomić aktualizator, a następnie przełączyć się z powrotem. Teraz mogę zaktualizować serwer aplikacji, aby działał na Javie 7.
Adrian J. Moreno
4

Wygląda na to, że będziesz musiał to zrobić ręcznie. Dokumentacja Oracle stwierdza, że jednocześnie można zainstalować tylko jedno środowisko JRE .

Ta strona pomocy technicznej Apple opisuje, jak przełączać się między Apple SE 6 JRE a Oracle SE 7 JRE . W skrócie, aby przełączyć JRE Oracle z powrotem na Apple, uruchom aplikację Terminal i wpisz następujące polecenie:

sudo mkdir -p /Library/Internet\ Plug-Ins/disabled

sudo mv /Library/Internet\ Plug-Ins/JavaAppletPlugin.plugin /Library/Internet\ Plug-Ins/disabled

sudo ln -sf /System/Library/Java/Support/Deploy.bundle/Contents/Resources/JavaPlugin2_NPAPI.plugin /Library/Internet\ Plug-Ins/JavaAppletPlugin.plugin

Na stronie pomocy znajduje się więcej (i lepszych) instrukcji na temat przełączania Web Start z powrotem na JRE 6 i jak wszystko z powrotem na Oracle JRE 7 (ponownie zainstalować JRE).

Nie tak proste, jak użycie narzędzia Preferencje Java, ale lepsze niż nic.

dfjacobs
źródło
1
Niedawne użycie przez Oracle terminu JRE wprowadza użytkowników OS X w błąd. Środowisko JRE to znacznie więcej niż wtyczka.
Graham Perrin
2

na podstawie odpowiedzi user2343996

alias java8="export JAVA_HOME=$(/usr/libexec/java_home -v 1.8) && java -version"
alias java6="export JAVA_HOME=$(/usr/libexec/java_home -v 1.6) && java -version"
existeundelta
źródło
-4

Dlaczego musisz mieć zainstalowane 2 wersje Java?

Apple nie ma zainstalowanej Java jako domyślnej aktualizacji (wierzę, że od Lion'a). Najlepszy sposób sprawdzenia / zainstalowania Java na Macu jest następujący:

  1. Otwórz terminal. Wpisz „java” (bez cudzysłowu)
  2. Jeśli java nie jest dostępna, pojawia się następujący komunikat: „Brak środowiska wykonawczego programów Java, żądanie instalacji…”
  3. Java zaczyna instalować się normalnie (jest to fałszywy plik wykonywalny rozpoczynający instalację)
  4. Jeśli masz Javę do sprawdzenia wersji, w terminalu wpisz „java-version”

Jeśli chcesz zainstalować inną wersję Java: Po prostu przejdź do strony Oracle i pobierz najnowszą / starszą wersję JDK.

SashaZd
źródło
Mam już dwie wersje Java, jak napisałem w pytaniu. Pytam, jak zmienić domyślny.
Maverik,
Myślę, że automatycznie przełącza się na najnowszą wersję / najnowszą zainstalowaną wersję. W moim przypadku zainstalowałem jdk 7 jako ostatni. Więc to ten, który działa domyślnie.
SashaZd
3
Chcę mieć możliwość przełączania się między wersjami.
Maverik
Istnieją różnice między Apple JDK 6 a Oracle JDK 7, które mogą powodować niezgodności, zarówno w czasie kompilacji, jak i w czasie wykonywania.
JohnnyO,
1
Ogólnie rzecz biorąc, nie próbujemy zmieniać czyichś przesłanek, chyba że możemy zaoferować konkurencyjną lub przekonującą alternatywę, gdy odpowiedź jest po prostu przecząca. Odradzamy również proszenie o głosy, więc zredagowałem to z twojej odpowiedzi.
bmike