Zainstalowałem Java 7 na Mac OS X, ale Terminal nadal używa wersji 6


391

Zainstalowałem JDK 7u7 pobrany ze strony internetowej Oracle. Ale po instalacji terminal nadal wyświetla wersję Java 6

$java -version
java version "1.6.0_35"
Java(TM) SE Runtime Environment (build 1.6.0_35-b10-428-11M3811)
Java HotSpot(TM) 64-Bit Server VM (build 20.10-b01-428, mixed mode)

jakiś pomysł, dlaczego java 7 się nie pojawia?

Odp .: OK, problem został rozwiązany. Oto odpowiedź: znalazłem, że mój terminal ma .bash_profile, a zmienna główna Java jest ustawiona na 1.6

export JAVA_HOME="/System/Library/Frameworks/JavaVM.framework/Versions/1.6.0/Home"

To jest linia powodująca problem za każdym razem, gdy otwieram nowe okno terminala. Wystarczy usunąć tę linię, aby rozwiązać problem. Nadal musisz postępować zgodnie z tym, co powiedział @aleroot, ale jeśli to nie działa, sprawdź plik ustawień .bash_profile (lub .bashrc), aby sprawdzić, czy wcześniej wyeksportowałeś jakąkolwiek wersję Java.


23
Miałem ten problem, ale zaktualizowałem tylko środowisko JRE, a nie JDK. Kiedy zaktualizowałem JDK, pokazał poprawną wersję.
Paul Maserrat,

Przeprowadź migrację, aby zapytać inaczej?
Nakilon,

14
Zwrócenie uwagi na komentarz @ Mazzy jest łatwym błędem. Pobranie JRE v7 spowoduje pojawienie się wersji 7 podczas uruchamiania sprawdzania wersji online lub panelu sterowania Java, ale podczas wywoływania Javy z wiersza poleceń uruchomisz starszą wersję z wcześniej zainstalowanego JDK. Sprawdź dokładnie, czy zainstalowałeś JDK, a nie tylko JRE.
Cam Jackson

1
Najlepszym sposobem na rozwiązanie tego problemu jest zastosowanie export JAVA_HOMEpodejścia opisanego tutaj w nieco bardziej elastyczny sposób.
Brad Parks,

5
Pozwólcie, że podkreślę to wielkimi literami: WIELU LUDZI LĄDUJĄCYCH NA TEJ STRONIE BĘDĄ PO PROSTU POBRAĆ I ZAINSTALOWAĆ NAJNOWSZY JDK. PANEL STEROWANIA JAVA AKTUALIZUJE JRE.
Walter Tross,

Odpowiedzi:


64

Ponieważ musisz wprowadzić w panelu Preferencje Java i oflagować tylko JVM 7 w ten sposób:

Preferencje Java

Aby łatwo i szybko otworzyć panel Preferencje Java w Mac OS X, możesz po prostu wywołać wyróżnienie za pomocą +SPACE i wpisać Preferencje systemowe , które pojawią się w ostatnim wierszu okna.


3
tak, znalazłem to. ale wciąż wersja 1.6 w terminalu, czy muszę się restartować czy coś takiego
Yang

1
Ten panel nie istnieje już w wersji 10.8. Alternatywy?
Pepijn,

68
@Pepijn Panale jest historią od Mac OSX 10.8.2 i tak naprawdę nie ma już takiej potrzeby. Zamiast tego musisz użyć export JAVA_HOME=`/usr/libexec/java_home -v 1.7`przełącznika na najnowszą wersję JDK Java 7 od Oracle.
Uwe Günther,

23
Myślę, że w pewnym momencie pozbyli się Preferencji Java. Spotlight nie znalazł na moim pudełku. Uruchamianie 10.8.5.
szybka zmiana w

1
Dokładną lokalizację JAVA_HOME można znaleźć w -> Preferencje systemowe -> Java. Kliknij kartę „Java”. Kliknij widok. Zmienna Ścieżka pokazuje Twój JAVA_HOME (kafelek / Strona główna).
agaase

298

Instalator Oracle umieszcza java wewnątrz /Library/Internet Plug-Ins/JavaAppletPlugin.plugin. I nie zastępuje /usr/bin/java. Więc jeśli wydasz

whereis java

w terminalu zwróci / usr / bin / java. (co z kolei wskazuje na /System/Library/Frameworks/JavaVM.framework/Versions/A/Commands/java, która jest wersją Apple 1.6).

Jeśli więc chcesz użyć nowej wersji Java, zamień /usr/bin/javadowiązanie symboliczne, tak aby wskazywało na /Library/Internet\ Plug-Ins/JavaAppletPlugin.plugin/Contents/Home/bin/java:

sudo rm /usr/bin/java
sudo ln -s /Library/Internet\ Plug-Ins/JavaAppletPlugin.plugin/Contents/Home/bin/java /usr/bin

22
Oto polecenie: sudo ln -s / Library / Internet \ Plug-Ins / JavaAppletPlugin.plugin / Contents / Home / bin / java / usr / bin
Binarian 11.11.2013

11
Dowodzenie Viktora działa. Być może jednak będziesz musiał upewnić się, że usunąłeś istniejące łącze symboliczne javarm /usr/bin/java
Matt Florence,

7
Dopóki ludzie Oracle nie poprawią tego procesu, oto HOWTO całego procesu instalowania javy w systemie OSX, aż do tego ostatniego kroku dowiązania symbolicznego: gist.github.com/johan/10590467
ecmanaut

61
mamrm: /usr/bin/java: Operation not permitted
Aditya

37
Lubexport PATH="/Library/Internet Plug-Ins/JavaAppletPlugin.plugin/Contents/Home/bin:$PATH"
Mick

114

Zainstaluj JDK 7, a ten problem sam się rozwiąże.

Koniecznie pobierz pakiet Java Development Kit (JDK), który zawiera kompilatory i podobne rzeczy, a nie tylko środowisko Java Runtime Environment (JRE).


7
zainstaluj pełny JDK, nie tylko JRE.
BrainO2

5
-1 To nie pomogło. Instalacja JDK nie zmienia się /usr/bin/javaani JAVA_HOME. Ale ustawienie JAVA_HOMEpomogło.
Andrii Nemchenko

3
Potwierdzono OK w OSX 10.9.4. Nie zmienia linku / usr / bin, zmienia rzeczy pod nim. Tak więc /usr/bin/java -> /System/Library/Frameworks/JavaVM.framework/Versions/Current/Commands/java # But: /System/Library/Frameworks/JavaVM.framework/Versions/Current/Commands/java -version java version "1.7.0_67"
Joe Atzberger

1
Pracował także dla JDK 1.8 - (zainstaluj JDK 1.8 zamiast JRE 1.8)
Mark Chackerian

Próbowałem zainstalować Javę 1.8, ale to nie działało na El Capitan. Instalacja 1.7 rozwiązała moje problemy.
SPRBRN

104

vi ~/.bash_profile

Dodaj

export JAVA_HOME=`/usr/libexec/java_home -v 1.7`

To mówi Twojemu /usr/bin/javacelowi łącza, aby używał najnowszego pakietu Java 7 zainstalowanego w

/Library/Java/JavaVirtualMachines/

Tak więc dla JDK 1.7.0_17 JAVA_HOMEbyłoby:

/Library/Java/JavaVirtualMachines/jdk1.7.0_17.jdk/Contents/Home

Uwaga: Ostatnio wprowadzono wiele zmian w tym obszarze, aby przenieść Mac OS X z własnych zintegrowanych pakietów Java firmy Appels na pakiety Java oparte na Oracle. Powyższe rozwiązanie działa poprawnie od systemu Mac OS X 10.8.2


4
+1 dla tej odpowiedzi, która jest imo poprawna, ponieważ działa na wersjach Mac OS przed i po usunięciu „Preferencji Java”, a pokazując opcję „-v” pokazuje, jak można korzystać z java 6, nawet jeśli java 7 jest zainstalowany (to jest to, czego chcę). Dlatego na moim komputerze Mac z systemem Lion (10.7.5) używam tego samego polecenia z „-v 1.6”. Jest to bardzo ważne, ponieważ potrzebuję Java 6, a Oracle nie zapewnia jednego dla Mac OS - tylko Java 7, a to pozwala mi korzystać z zainstalowanej JAva 6, nawet jeśli Java 7 jest zainstalowana.
Rabarbar

1
Ponadto, aby uczynić go bardziej elastycznym: mikemainguy.blogspot.com/2014/11/…
Mainguy

dodatkowe informacje można znaleźć tutaj dla tej niesamowitej odpowiedzi!
Brad Parks,

To działało dla mnie w Sierra 10.12 po zainstalowaniu 1.8 JKD eksport działał, zmieniając 1,7 na 1,8. Świetna odpowiedź za pomocą narzędzia java_home !!
Scott Byers

56

W moim przypadku problem polegał na tym, że Oracle instalował go w innym miejscu niż byłem przyzwyczajony.

Pobierz z Oracle: http://java.com/en/download/mac_download.jsp?locale=en

  1. Sprawdź, czy jest poprawnie zainstalowany, sprawdzając w Prefiksach systemu:

    • Command-Space, aby otworzyć Spotlight, wpisz „Preferencje systemowe”, naciśnij Enter.
    • Kliknij ikonę Java w dolnym rzędzie. Po otwarciu Panelu sterowania Java kliknij kartę „Java”, „Wyświetl ...” i sprawdź, czy instalacja działała. Możesz tam również zobaczyć „Ścieżkę”, którą możesz wpisać w poniższe polecenia, jeśli są one inne niż moje.
  2. Sprawdź, czy wersja jest zgodna z oczekiwaniami (w razie potrzeby sub w ścieżce):

    / Biblioteka / Internet \ Wtyczki / JavaAppletPlugin.plugin / Contents / Home / bin / java -version

  3. Utwórz link z / usr / bin / java do nowej instalacji

    sudo ln -fs / Biblioteka / Internet \ Wtyczki / JavaAppletPlugin.plugin / Contents / Home / bin / java / usr / bin / java

  4. Sanity sprawdź swoją wersję:

    java -version


Pracowałem również dla mnie, próbowałem też innego wyjaśnienia, ale w Maverix nie ma panelu, w którym można wybrać numer wersji, a także zmiana pliku .bash_profile nie zadziałała. DOSKONAŁY!
Alex Cio

Eclipse nie widzi wersji 1.7 pod kompilatorem
Laser Hawk

Pracował dla mnie! Przed = 1.6.0_65 i Po użyciu tego rozwiązania = 1.7.0_60 .... dzięki! :)
matematyka

ale zaćmienie daje błąd jak nadal „biblioteka współdzielona jvm nie zawiera symbolu jni_createjavavm” .... :(
matematyka

1
Dzięki za pomoc! Nic poza tym nie działało. Uruchamianie Yosemite
LordZardeck

33

Wystąpił podobny problem z tym, że terminal nie aktualizował wersji Java, aby pasowała do wersji zainstalowanej na komputerze Mac.

Nie było problemu z ustawieniem zmiennej środowiskowej JAVA_HOME

Wymyśliłem tymczasowe i nieco bolesne, ale działające rozwiązanie.

W tobie .bash_profile dodaj linię:

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

(To jest ścieżka na moim komputerze, ale może być inna na twojej, upewnij się, że ją masz. Ścieżki powinny pasować do / Library / Java / JavaVirtualMachines /)

bieg source ~/.bash_profile

Jak wspomniałem, jest to tymczasowe rozwiązanie wspomagania pasma, ponieważ ścieżka do domu Java jest mocno zakodowana. Naprawdę nie ma sposobu, aby ustawić ścieżkę, aby uzyskać najnowsze, ponieważ to właśnie Apple już robi dla terminala, a problem polega na tym, że zmienna środowiskowa Apple java_home nie jest aktualizowana.


4
Katalog jest pusty. $ ls / Library / Java / JavaVirtualMachines /
Pepijn

1
Prawdopodobnie masz problem z tym, gdzie zainstalowałeś java 7. Przejdź na stronę Oracle . Kliknij link „Java SE Development Kit 7u11”, zaakceptuj umowę licencyjną i pobierz „jdk-7u11-macosx-x64.dmg”. Użyj dmg, aby zainstalować Javę 7, co powinno umieścić ją w katalogu JavaVirtualMachines.
Derek

To jedno rozwiązanie dla Mojave 10.14.1 na początku 2019 r.
bitów i

27

Od czasu El Capitan usunięcie /usr/bin/javadowiązania symbolicznego jest trudne ze względu na wprowadzenie nowej zasady „rootless”.

Dlatego po prostu dodałem ścieżkę do najnowszej wersji Java (w moim przypadku jest to /Library/Internet Plug-Ins/JavaAppletPlugin.plugin/Contents/Home/bin) do PATHmojego .bashrcpliku:

# Use latest java version
export PATH=/Library/Internet\ Plug-Ins/JavaAppletPlugin.plugin/Contents/Home/bin:$PATH

Aby ponownie załadować .bashrcplik dla bieżącej sesji, uruchom source ~/.bashrcw powłoce. Musisz to zrobić tylko w przypadku sesji rozpoczętych przed zmianą .bashrcpliku.

Teraz, gdy używasz javaw powłoce , używana jest najnowsza wersja .


1
To szczególne rozwiązanie działało dla mnie na moim Mac OS X el Capitan. Nie ominąłem zabezpieczeń skonfigurowanych na el capitan, ale zainstalowałem java w wersji 1.8. Eksportowanie JAVA_HOME = / moja konkretna ścieżka itp. Etc / nie działało (po przejściu do preferencji i zlokalizowaniu ścieżki do 1.8). Uwaga: 1.6 jest nadal zainstalowany. Musiałem utworzyć plik .bashrc i ustawić ścieżkę zgodnie z opisem tutaj. Uruchomiłem java -version i shazzam! zadziałało.
umbregachoong

Tak bardzo chciałem, żeby to zadziałało, kiedy jestem na El Capitan i nie mogę znaleźć innego rozwiązania do działania. Utworzyłem plik „.bashrc” i dodałem wiersz jak wyżej, ale jeśli napiszę „java -version”, nadal otrzymuję 1.6. Coś, co mogłem przeoczyć?
noLongerRandom

@ user3810073 być może trzeba uruchomić source .bashrc, aby ponownie załadować zawartość .bashrc
TabeaKischka

Pracował dla mnie. Dodałem wiersz do .bash_profile (w katalogu osobistym mojego użytkownika), a następnie źródłowy .bash_profile. Potem wersja java dała mi najnowszą. Dzięki!
mrmuggles

Można to również osiągnąć poprzez symlinkowanie w /usr/local/binnastępujący sposób: sudo ln -sf "/Library/Internet Plug-Ins/JavaAppletPlugin.plugin/Contents/Home/bin/java" /usr/local/bin/java To założenie /usr/local/binjest wcześniej /usr/binw twoim, $PATHco powinno być domyślnie.
lifeofguenter

21

Dla mnie najłatwiejszym i najczystszym sposobem jest zainstalowanie Java za pomocą homebrew, jak opisano tutaj:

https://stackoverflow.com/a/28635465

brew update
brew cask install java

Proste i czyste rozwiązanie !. Działa jak urok.
Rahul Shukla

2
To jedyne rozwiązanie, które zaktualizowało zarówno java, jak i javac. Dzięki!
ldanilek

Działa jak urok :) Wielkie dzięki
Mohamed Saleh

spowoduje to zainstalowanie najnowszej wersji Java, a nie Java7
Ivo

13

Podstawowy problem: /usr/bin/javawskazuje na ten, który początkowo zapewnia sam OSX ( /System/Library/Frameworks/JavaVM.framework/Versions/Current/Commands/java) Musimy wskazać na ten pobrany przez instalator JDK. Poniższe kroki dotyczą OSX 10.10.4 Yosemite.

  • Otwórz Preferencje systemowe -> wybierz Java. Otwiera się okno Java.
  • Kliknij kartę Java u góry. Kliknij przycisk „Widok”.
  • Karta Ustawienia środowiska wykonawczego programów Java zostanie otwarta w następujący sposób: Karta Ustawienia JRE
  • Kliknij dwukrotnie ikonę Path element i skopiuj ścieżkę (cmd + c). Jest to najnowszy zainstalowany przez instalatora / aktualizatora JDK. W moim przypadku ścieżka była/Library/Internet\ Plug-Ins/JavaAppletPlugin.plugin/Contents/Home/bin/java
  • Otwórz terminal. W tym kroku zamierzamy wskazać (łącze symboliczne, ln -spolecenie) system binarny Java na najnowszy, który odkryliśmy w poprzednim kroku. Uruchom poniższe polecenie:

sudo ln -s /Library/Internet\ Plug-Ins/JavaAppletPlugin.plugin/Contents/Home/bin/java /usr/bin/java

Otóż ​​to. Aby to sprawdzić, wystarczy uruchomić java -version terminal. Powinien wypisać najnowszą wersję, do której został zainstalowany / zaktualizowany.


2
Działa dla mnie, tyle że musiałem dodać -f do polecenia ln. W przeciwnym razie, jeśli nie powiedzie się z ln: / usr / bin / java: Plik istnieje
Dale

w moim przypadku usr/local/binusr/bin
użyłbym

Otrzymuję komunikat „Operacja niedozwolona”.
Shardul

Uzyskanie ścieżki w ten sposób jest idealne. Następnie mogłem go wyeksportować i ponownie załadować bashrc, aby rozwiązać problem z wersją. W moim przypadku migrowałem z wersji 7 do 8 na Mojave 10.14.1
bitów i

12

W terminalu możesz wykonać następujące polecenie:

export PATH="/Library/Internet Plug-Ins/JavaAppletPlugin.plugin/Contents/Home/bin:$PATH"

I to zastępuje java old nowym.


1
Dziwnie to zastępuje, ale jeśli zamknę terminal i otworzę ponownie, znowu pokazuje starszą wersję
Parth Patel

to prawda. tak dziwne. bardzo tymczasowe rozwiązanie
użytkownik

1
dodaj to do pliku .bashrc, a następnie source ~/.bashrc
ustaw na

10

Zrobiłem

export JAVA_HOME=`/usr/libexec/java_home`

i to naprawiło mój problem z Javą 8.

przed:

java version "1.6.0_31"
Java(TM) SE Runtime Environment (build 1.6.0_31-b04)
Java HotSpot(TM) 64-Bit Server VM (build 20.6-b01, mixed mode)

po:

java version "1.8.0_05"
Java(TM) SE Runtime Environment (build 1.8.0_05-b13)
Java HotSpot(TM) 64-Bit Server VM (build 25.5-b02, mixed mode)

1
To /usr/libexec/java_homebardzo dobra wskazówka, dzięki!
Raffi,

1
Wykonałem pracę po przeczytaniu ton możliwych rozwiązań! Dzięki :)
ronnyrr

7

http://www.java.com/en/download/faq/java_mac.xml to miłe miejsce do zrozumienia, podczas gdy Apple przestaje wspierać Javę, dlaczego Preferencje Java już nie istnieją i polegają na System_Preferences => Java = > Java, jeśli zainstalowana jest Java 7 z Oracle.


2
To dobra informacja, ale naprawdę powinieneś podać więcej szczegółów niż tylko link. Jeśli link zostanie zerwany w przyszłości, twoja odpowiedź naprawdę nie będzie bardzo przydatna.
psubsee2003

7

Czy mogę polecić Ci narzędzie Jenv?

Umożliwi to przełączanie się między zainstalowanymi maszynami JVM w dowolnym momencie.

Po prostu jako:

jenv global oracle-1.7

następnie do celów testowych:

jenv global oracle-1.6

I masz znacznie więcej dostępnych poleceń.


+1 za tę odpowiedź, ponieważ możesz użyć Homebrew, jeśli używasz go już w systemie OS X. Mówię o wiele czystsze niż inne. Więcej informacji tutaj: jenv.be
piku

6

Kodowanie ścieżki JAVA_HOME może nie być najlepszym pomysłem. Program /usr/libexec/java_homenarzędziowy działa dla mnie na Mac OSX Lion 10.7.5 i JDK 1.7.0_13. Według strony podręcznika, ma być używany ze starym panelem Apple Java Preferences, ale wydaje się, że działa z zamiennikiem dostarczonym przez Oracle (Java Control Panel). Na przykład uruchomione /usr/libexec/java_home -Vwyświetla listę wszystkich zainstalowanych JDK (zarówno 1.6. *, Jak i 1.7. *) Na moim komputerze.

Tak więc, jak omówiono w innych wątkach (np. Co powinienem ustawić JAVA_HOME na OSX ), nadal zalecałbym dodanie następującej linii do twojego .bash_profile:

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

Zgadzam się z twoim komentarzem tutaj, ponieważ jest to najlepsza praktyka, ale z jakiegoś powodu zmienna środowiskowa java_home nie jest ustawiona poprawnie, dlatego to nie działa. Wierzę, że w najnowszej aktualizacji firmy Apple twoja sugestia jest domyślnie domyślną akcją dla JAVA_HOME w terminalu i innych powiązanych aplikacjach.
Derek

@Derek Co dokładnie masz na myśli mówiąc, że „zmienna środowiskowa java_home nie jest ustawiona poprawnie”? Według tego artykułu/usr/libexec/java_home narzędzie jest przeznaczone do pracy również z Java 7 wersjach, i zwraca ścieżkę do większości daty up-to-zainstalowanego JDK. Działa idealnie na moim komputerze.
zagyi

1
tak, powinno działać, ale nie dotyczy osób z problemem, o którym wspominał pepijin.
Derek

6

To szalone! W jaki sposób Oracle udostępnia instalator, który niczego nie instaluje !?

W każdym razie dla mnie było to:

sudo rm /usr/bin/java
sudo ln -s /Library/Java/JavaVirtualMachines/jdk1.8.0_31.jdk/Contents/Home/jre/bin/java /usr/bin/java

gdzie 1.8.0_31 to zainstalowana wersja Java ...


Dlaczego Apple nie zapewnia właściwej metody?
jwilleke,

6

W przypadku, gdy masz kilka wersji Java na swoim komputerze i chcesz wybrać go dynamicznie w czasie wykonywania, tj. W moim przypadku mam dwie wersje:

ls -la /Library/Java/JavaVirtualMachines
drwxr-xr-x  3 root  wheel    96B Nov 16  2014 jdk1.7.0_71.jdk/
drwxr-xr-x  3 root  wheel    96B Mar  1  2015 jdk1.8.0_31.jdk/

Możesz je zmienić, modyfikując zawartość / etc / profile. Po prostu dodaj (lub zmodyfikuj) następujące dwa wiersze na końcu pliku:

export JAVA_HOME=YOUR_JAVA_PATH/Contents/Home
export PATH=$JAVA_HOME/bin:$PATH

W moim przypadku powinienem wyglądać następująco:

Java 7:

export JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk1.7.0_71.jdk/Contents/Home
export PATH=$JAVA_HOME/bin:$PATH

Java 8:

export JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk1.8.0_31.jdk/Contents/Home
export PATH=$JAVA_HOME/bin:$PATH

Po zapisaniu pliku uruchom source /etc/profile go i powinien działać. Oto wyniki, gdy odpowiednio używam pierwszej i drugiej opcji:

Java 7:

java -version
java version "1.7.0_71"
Java(TM) SE Runtime Environment (build 1.7.0_71-b14)

Java 8:

java -version 
java version "1.8.0_31"
Java(TM) SE Runtime Environment (build 1.8.0_31-b13)

Proces jest podobny, jeśli folder Java znajduje się w różnych lokalizacjach.


5

Proste rozwiązanie

export PATH="/Library/Internet Plug-Ins/JavaAppletPlugin.plugin/Contents/Home/bin:$PATH"

Niesamowite. To rozwiązanie uczyniło mój dzień. Wielkie dzięki Mick
użytkownik

3

Myślę, że możesz spróbować zainstalować jdk, a nie jre. Po zainstalowaniu jdk, java w / usr / bin / java zostanie zastąpiona, a cała biblioteka będzie działać poprawnie.


3

Jeśli masz zainstalowany program Homebrew, możesz zainstalować przełącznik Java, aby szybciej zmienić domyślną wersję Java

brew tap andycillin/tap
brew install java-switcher

Następnie możesz użyć tylko jednego polecenia, aby przełączyć domyślną wersję Java.

java-switcher 1.7

lub

java-switcher 10

Dzięki, Andy, to było łatwe.
GreenROBO,

1

Możesz uruchomić to polecenie, aby znaleźć wersję Java, która znajduje się w / Library / Internet Plugins /:

defaults read /Library/Internet\ Plug-Ins/JavaAppletPlugin.plugin/Contents/Info.plist CFBundleVersion

1

Dzieje się tak, ponieważ Twój .bash_profile nie odzwierciedla zmian. Aby to odzwierciedlić, użyj następującego polecenia

$ source .bash_profile

0

Ponieważ nie spotkałem się z tym problemem, przeczuwam -

Czy możesz spróbować:

Gdzie miękki link „java_home” wskazuje na:

ls -lrt /usr/libexec/java_home

Dane wyjściowe: (Stunted) lrwxr-xr-x java_home -> /System/Library/Frameworks/JavaVM.framework/Versions/Current/Commands/java_home

** ls -lrt /System/Library/Frameworks/JavaVM.framework/Versions Mój MAC Wytwarza następujące elementy:

 lrwxr-xr-x CurrentJDK ->
 /System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents**

 lrwxr-xr-x   Current -> A
 lrwxr-xr-x  1 root  wheel   10 Oct 18 14:39 1.6.0 -> CurrentJDK
 lrwxr-xr-x  1 root  wheel   10 Oct 18 14:39 1.6 -> CurrentJDK
 lrwxr-xr-x  1 root  wheel   10 Oct 18 14:39 1.5.0 -> CurrentJDK
 lrwxr-xr-x  1 root  wheel   10 Oct 18 14:39 1.5 -> CurrentJDK
 lrwxr-xr-x  1 root  wheel   10 Oct 18 14:39 1.4.2 -> CurrentJDK
 lrwxr-xr-x  1 root  wheel   10 Oct 18 14:39 1.4 -> CurrentJDK

Na tej podstawie możemy uzyskać wskazówkę, aby przejść dalej?


przeczytaj kilka komentarzy w Internecie na temat problemów z Javą 7 w systemie MAC-OSX i pokaże, że są one zablokowane . Zobacz : grep.dk/tag/xprotect-meta-plist . W XProtect.meta.plist mam Java 7 i Flash na liście. Do czasu gry w Vulnerability Police
użytkownik1428716

0

Rozwiązałem ten problem, ponownie instalując Yosemite, a następnie sprawdzając wersję java na terminalu (java -version) i (javac -version). Działa to doskonale teraz. Nie zmienia się na java 7, ponieważ wersja 6 nadal jest obecna (polecenie + n ) libray> java> javavirtualmachine> twoja aktualna wersja javac. musisz zaadresować do strony domowej java.


0

Rozwiązałem ten problem z sudo rm /usr/bin/java

Pobrałem i zainstalowałem ostatnie środowisko Java SE Runtime Environment: http://www.oracle.com/technetwork/java/javase/downloads/index.html

sudo ln -s /Library/Java/JavaVirtualMachines/jdk1.8.0_31.jdk/Contents/Home/jre/bin/java /usr/bin/javanie działało dla mnie, ponieważ mam Operation not permitted. El Capitan chroni teraz niektóre katalogi systemowe w trybie „rootless” (inaczej System Integrity Protection). Dotyczy to macOS Sierra i prawdopodobnie nowych wersji macOS w dającej się przewidzieć przyszłości.


0

Instalacja za pośrednictwem rozproszonego JDK DMG ze strony Oracle automatycznie aktualizuje wszystko dla mnie. Widziałem (w El Capitan) aktualizację za pomocą System Preferences > Javaaktualizacji, ale nie odzwierciedlają one wiersza poleceń. Instalacja za pomocą DMG wykonuje to zadanie.


0

Sprawdź zainstalowane wersje JDK:

$ ls  /Library/Java/JavaVirtualMachines/
jdk-11.0.2.jdk  jdk1.8.0_91.jdk

Teraz w ~/.bashrceksporcie z JAVA_HOMEpodaniem wersji:

if [ -e /usr/libexec/java_home ]; then
  export JAVA_HOME=$(/usr/libexec/java_home -v 11)
fi

Źródło pliku bashrc, a wersja Java zostanie zaktualizowana:

$ java -version
java version "11.0.2" 2019-01-15 LTS
Java(TM) SE Runtime Environment 18.9 (build 11.0.2+9-LTS)
Java HotSpot(TM) 64-Bit Server VM 18.9 (build 11.0.2+9-LTS, mixed mode)

0

Najnowsza w 100% skuteczna metoda:


w bash:

vim ~/.bash_profile

Dodaj

export PATH="/Library/Internet Plug-Ins/JavaAppletPlugin.plugin/Contents/Home/bin:$PATH"
  • :wq zapisać
  • cmd + q force quit bash
  • ponownie otwórz bash i wpisz java -version

Ale tak naprawdę ta ścieżka wskazuje na jre, a nie jdk.

Jeśli chcesz wskazać ścieżkę do JDK, potrzebujesz

  1. Upewnij się, że zainstalowałeś JDK ani pojedyncze środowisko wykonawcze JRE
  2. zastąp poprzednią ścieżkę do PATH="/Library/Java/JavaVirtualMachines/jdk1.8.0_221.jdk", możesz przejść do, /Library/Java/JavaVirtualMachinesaby upewnić się, że zainstalowałeś oczekiwaną wersję JDK.
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.