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.
export JAVA_HOME
podejścia opisanego tutaj w nieco bardziej elastyczny sposób.Odpowiedzi:
Ponieważ musisz wprowadzić w panelu Preferencje Java i oflagować tylko JVM 7 w ten sposób:
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.
źródło
export JAVA_HOME=`/usr/libexec/java_home -v 1.7`
przełącznika na najnowszą wersję JDK Java 7 od Oracle.Instalator Oracle umieszcza java wewnątrz
/Library/Internet Plug-Ins/JavaAppletPlugin.plugin
. I nie zastępuje/usr/bin/java
. Więc jeśli wydaszw 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/java
dowiązanie symboliczne, tak aby wskazywało na/Library/Internet\ Plug-Ins/JavaAppletPlugin.plugin/Contents/Home/bin/java
:źródło
rm /usr/bin/java
rm: /usr/bin/java: Operation not permitted
export PATH="/Library/Internet Plug-Ins/JavaAppletPlugin.plugin/Contents/Home/bin:$PATH"
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).
źródło
/usr/bin/java
aniJAVA_HOME
. Ale ustawienieJAVA_HOME
pomogło./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"
vi ~/.bash_profile
Dodaj
export JAVA_HOME=`/usr/libexec/java_home -v 1.7`
To mówi Twojemu
/usr/bin/java
celowi łącza, aby używał najnowszego pakietu Java 7 zainstalowanego w/Library/Java/JavaVirtualMachines/
Tak więc dla JDK
1.7.0_17
JAVA_HOME
był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
źródło
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
Sprawdź, czy jest poprawnie zainstalowany, sprawdzając w Prefiksach systemu:
Sprawdź, czy wersja jest zgodna z oczekiwaniami (w razie potrzeby sub w ścieżce):
/ Biblioteka / Internet \ Wtyczki / JavaAppletPlugin.plugin / Contents / Home / bin / java -version
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
Sanity sprawdź swoją wersję:
java -version
źródło
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ę:
(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.
źródło
Od czasu El Capitan usunięcie
/usr/bin/java
dowią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
) doPATH
mojego.bashrc
pliku:Aby ponownie załadować
.bashrc
plik dla bieżącej sesji, uruchomsource ~/.bashrc
w powłoce. Musisz to zrobić tylko w przypadku sesji rozpoczętych przed zmianą.bashrc
pliku.Teraz, gdy używasz
java
w powłoce , używana jest najnowsza wersja .źródło
source .bashrc
, aby ponownie załadować zawartość .bashrc/usr/local/bin
nastę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/bin
jest wcześniej/usr/bin
w twoim,$PATH
co powinno być domyślnie.Dla mnie najłatwiejszym i najczystszym sposobem jest zainstalowanie Java za pomocą homebrew, jak opisano tutaj:
https://stackoverflow.com/a/28635465
źródło
Podstawowy problem:
/usr/bin/java
wskazuje 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.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
ln -s
polecenie) 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.źródło
usr/local/bin
usr/bin
W terminalu możesz wykonać następujące polecenie:
I to zastępuje java old nowym.
źródło
source ~/.bashrc
Zrobiłem
i to naprawiło mój problem z Javą 8.
przed:
po:
źródło
/usr/libexec/java_home
bardzo dobra wskazówka, dzięki!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.
źródło
Czy mogę polecić Ci narzędzie Jenv?
Umożliwi to przełączanie się między zainstalowanymi maszynami JVM w dowolnym momencie.
Po prostu jako:
następnie do celów testowych:
I masz znacznie więcej dostępnych poleceń.
źródło
Kodowanie ścieżki JAVA_HOME może nie być najlepszym pomysłem. Program
/usr/libexec/java_home
narzę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 -V
wyś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:
źródło
/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.To szalone! W jaki sposób Oracle udostępnia instalator, który niczego nie instaluje !?
W każdym razie dla mnie było to:
gdzie 1.8.0_31 to zainstalowana wersja Java ...
źródło
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:
Możesz je zmienić, modyfikując zawartość / etc / profile. Po prostu dodaj (lub zmodyfikuj) następujące dwa wiersze na końcu pliku:
W moim przypadku powinienem wyglądać następująco:
Java 7:
Java 8:
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 8:
Proces jest podobny, jeśli folder Java znajduje się w różnych lokalizacjach.
źródło
Proste rozwiązanie
źródło
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.
źródło
Jeśli masz zainstalowany program Homebrew, możesz zainstalować przełącznik Java, aby szybciej zmienić domyślną wersję Java
Następnie możesz użyć tylko jednego polecenia, aby przełączyć domyślną wersję Java.
lub
źródło
Możesz uruchomić to polecenie, aby znaleźć wersję Java, która znajduje się w / Library / Internet Plugins /:
źródło
Dzieje się tak, ponieważ Twój .bash_profile nie odzwierciedla zmian. Aby to odzwierciedlić, użyj następującego polecenia
źródło
Ponieważ nie spotkałem się z tym problemem, przeczuwam -
Czy możesz spróbować:
Gdzie miękki link „java_home” wskazuje na:
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:
Na tej podstawie możemy uzyskać wskazówkę, aby przejść dalej?
źródło
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.
źródło
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/java
nie działało dla mnie, ponieważ mamOperation 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.źródło
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 > Java
aktualizacji, ale nie odzwierciedlają one wiersza poleceń. Instalacja za pomocą DMG wykonuje to zadanie.źródło
Sprawdź zainstalowane wersje JDK:
Teraz w
~/.bashrc
eksporcie zJAVA_HOME
podaniem wersji:Źródło pliku bashrc, a wersja Java zostanie zaktualizowana:
źródło
Najnowsza w 100% skuteczna metoda:
w bash:
Dodaj
:wq
zapisaćjava -version
Ale tak naprawdę ta ścieżka wskazuje na jre, a nie jdk.
Jeśli chcesz wskazać ścieżkę do JDK, potrzebujesz
PATH="/Library/Java/JavaVirtualMachines/jdk1.8.0_221.jdk"
, możesz przejść do,/Library/Java/JavaVirtualMachines
aby upewnić się, że zainstalowałeś oczekiwaną wersję JDK.źródło