Mac OS X i wiele wersji Java
Jak zainstalować dodatkową Javę na MacOS? Zainstalowałem jdk8 i to działa dobrze. ale teraz potrzebuję instalacji jdk7 do celów rozwojowych. Przy próbie instalacji starej wersji poprzez plik DMG dostaję ostrzeżenie, że jest już zainstalowana nowsza wersja Javy i Instalator się kończy.
/usr/libexec/java_home -verbose
Matching Java Virtual Machines (1):
1.8.0_20, x86_64: "Java SE 8" /Library/Java/JavaVirtualMachines/jdk1.8.0_20.jdk/Contents/Home
/Library/Java/JavaVirtualMachines/jdk1.8.0_20.jdk/Contents/Home
Jak zainstalować jdk7 oprócz tego?
Thanks
Dakky
9 answers
Najczystszym sposobem zarządzania wieloma wersjami java na Macu jest użycie Homebrew
.
I wewnątrz Homebrew
, Użyj:
-
homebrew-cask
aby zainstalować wersje Javy - Aby zarządzać zainstalowanymi wersjami Javy]}
Jak widać na http://hanxue-it.blogspot.ch/2014/05/installing-java-8-managing-multiple.html , oto kroki, które należy wykonać.
- zainstaluj homebrew
- zainstaluj homebrew jenv
- zainstaluj homebrew-cask W przeciwieństwie do innych wersji Javy, Java nie jest w pełni kompatybilna z cask.]} Jenv jest jedną z najbardziej rozpoznawalnych postaci na świecie.]}
- sprawdź, czy wersja jest poprawnie zarządzana przez jenv
- powtórz kroki od 4 do 6 dla każdej wersji Javy, której potrzebujesz
Homebrew-wersje beczkowe
Dodaj homebrew/cask-versions
stuknij do homebrew używając:
brew tap homebrew/cask-versions
Wtedy możesz spojrzeć na wszystkie wersje dostępne:
brew search java
Następnie możesz zainstalować wersję lub wersje, które lubisz:
brew cask install java7
brew cask install java6
I dodać je do zarządzania jenv jak zwykle.
jenv add <javaVersionPathHere>
Myślę, że jest to najczystszy i najprostszy sposób, aby to zrobić.
Kolejna ważna rzecz do odnotowania, jak wspomniano w Mac OS X 10.6.7 Java Path Current JDK mylące :
Dla różnych typów JDK lub instalacji, będziesz miał różne ścieżki
Możesz sprawdzić ścieżki wersje zainstalowane przy użyciu
/usr/libexec/java_home -V
, Zobacz Jak sprawdzić, czy Java JDK jest zainstalowany na komputerze Mac?Na Mac OS X znalazłem:
1) Wbudowany JRE default:
/Library/Internet\ Plug-Ins/JavaAppletPlugin.plugin/Contents/Home
2) JDKs pobrany z Apple:
/System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home/
3) JDKs pobrany z Oracle:
/Library/Java/JavaVirtualMachines/jdk1.8.0_11.jdk/Contents/Home
Zasoby
- usuwanie Javy 8 JDK z Mac
- http://hanxue-it.blogspot.ch/2014/05/installing-java-8-managing-multiple.html
- http://sourabhbajaj.com/mac-setup/index.html
- http://brew.sh
- https://github.com/Homebrew/homebrew/tree/master/share/doc/homebrew#readme
- http://sourabhbajaj.com/mac-setup/Homebrew/README.html
- "brew tap" wyjaśnione https://github.com/Homebrew/homebrew/blob/master/share/doc/homebrew/brew-tap.md
- "brew versions" explained Homebrew zainstalować konkretną wersję formuły? a także https://github.com/Homebrew/homebrew-versions
- https://github.com/caskroom/homebrew-cask
- "wersje beczkowe", podobne do" wersje piwne", patrz https://github.com/caskroom/homebrew-versions a także https://github.com/caskroom/homebrew-cask/issues/9447
- http://www.jenv.be
- https://github.com/gcuisinier/jenv
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-08-22 06:10:41
Odinstaluj jdk8, zainstaluj jdk7, a następnie ponownie zainstaluj jdk8.
Moje podejście do przełączania się między nimi (in .profil): {]}export JAVA_7_HOME=$(/usr/libexec/java_home -v1.7)
export JAVA_8_HOME=$(/usr/libexec/java_home -v1.8)
export JAVA_9_HOME=$(/usr/libexec/java_home -v9)
alias java7='export JAVA_HOME=$JAVA_7_HOME'
alias java8='export JAVA_HOME=$JAVA_8_HOME'
alias java9='export JAVA_HOME=$JAVA_9_HOME'
#default java8
export JAVA_HOME=$JAVA_8_HOME
Następnie możesz po prostu wpisać java7
lub java8
w Terminalu, aby zmienić wersje.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-10-10 13:32:41
Dla macOS Sierra 420
Ten poradnik został poukładany z różnych źródeł (odpowiedzi powyżej oraz inne posty) i działa idealnie.
0. Jeśli jeszcze tego nie zrobiłeś, zainstaluj homebrew.
Zobacz https://brew.sh/
1. Zainstaluj jenv
brew install jenv
2. Dodaj jenv do profilu bash
if which jenv > /dev/null; then eval "$(jenv init -)"; fi
3. Dodaj jenv do swojej ścieżki
export PATH="$HOME/.jenv/shims:$PATH"
4. Wybierz "beczka / wersje"
brew tap caskroom/versions
5. Zainstaluj najnowszą wersję java
brew cask install java
6. W tym celu należy zainstalować java 6 (lub 7 lub 8 cokolwiek potrzebujesz)
brew cask install java6
#brew cask install java7
#brew cask install java8
7. Przegląd Instalacji
Wszystkie wersje Javy zostaną zainstalowane tutaj: /Library/Java/JavaVirtualMachines
rzućmy okiem.
ls -la /Library/Java/JavaVirtualMachines
8. Dodaj każdą ścieżkę do jenv pojedynczo.
Musimy dodać "/ Contents / Home"do folderu wersji. Ostrzeżenie: użyj rzeczywistych ścieżek na komputerze... są to po prostu przykład's
jenv add /Library/Java/JavaVirtualMachines/1.6.0___EXAMPLE___/Contents/Home
jenv add /Library/Java/JavaVirtualMachines/jdk-9.0.1.jdk___EXAMPLE___/Contents/Home
9. Sprawdź, czy jenv zarejestrował się OK
jenv versions
10. Set wersja java do użycia (globalnie)
Gdzie XX pasuje do jednej z pozycji z listy wersji powyżej.
jenv global XX
Sprawdź wersję Javy
java -version
Sprawdź wersje jenv
Powinny również wskazywać bieżącą wersję używaną gwiazdką.
jenv versions
Zrobione
Quick future reference
Aby zmienić wersje Javy
... Zobacz listę dostępnych wersji java
jenv versions
... następnie, gdzie XX pasuje do pozycji na liście above
jenv global XX
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-12-07 16:49:30
SDKMAN! to świetne narzędzie do używania wielu wersji Java, Gradle, Groovy, Kotlin i innych narzędzi JVM na Mac OS. Instalacja i użycie doc są wyraźnie na stronie głównej.
(nie mam afiliacji, jestem tylko zadowolonym użytkownikiem).
Jako przykład użycia, jeśli w oknie terminala wpiszę następującą listę dostępnych wersji Java SDK (edytowanych dla zwięzłości):
$ sdk list java
Available Java Versions
+ 9ea170
> + 8u131
7u141-zulu
Tutaj +
oznacza, że wersja jest zainstalowana. >
oznacza, która wersja jest obecnie w użyciu. Aby zainstalować wersję:
$ sdk install java 7u141-zulu
Aby użyć wersji w tym oknie terminala:
$ sdk use java 9ea170
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-07-16 23:40:02
Jak znaleźć na tej stronie Zacznijmy więc od instalacji jEnv
-
Uruchom to w terminalu
brew install https://raw.github.com/gcuisinier/jenv/homebrew/jenv.rb
-
Dodaj jEnv do profilu bash
if which jenv > /dev/null; then eval "$(jenv init -)"; fi
-
Podczas pierwszej instalacji jEnv nie będzie miał żadnego JDK związanego z nim.
Na przykład, właśnie zainstalowałem JDK 8, ale jEnv o tym nie wie. Aby sprawdzić wersje Javy na jEnv
W tej chwili znaleziono tylko wersję Javy(jre) w systemie.
*
pokazuje wersję aktualnie wybrane. W przeciwieństwie do RVM i rbenv, jEnv nie może zainstalować JDK dla Ciebie. Musisz zainstalować JDK ręcznie ze strony Oracle. Zainstaluj JDK 6 ze strony Apple. Spowoduje to zainstalowanie Javy w
/System/Library/Java/JavaVirtualMachines/
. Powodem, dla którego instalujemy Javę 6 ze strony Apple jest to, że SUN nie wymyślił JDK 6 dla komputerów MAC, więc Apple stworzył/zmodyfikował własną wersję wdrożeniową.Podobnie zainstaluj JDK7 i JDK8.
-
Dodaj JDKs do jEnv.
JDK 6:
-
Sprawdź wersje Javy zainstalowane przy użyciu jenv
-
Więc teraz mamy 3 wersje Javy w naszym systemie. Aby ustawić domyślną wersję użyj polecenia
jenv local <jenv version>
Ex-chciałem aby Jdk 1.6 uruchomił IntelliJ
jenv local oracle64-1.6.0.65
-
Sprawdź wersję Javy
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-06-26 01:43:09
Używam Mac OS X 10.9.5. W ten sposób zarządzam wieloma JDK/JRE na moim komputerze, gdy potrzebuję jednej wersji, aby uruchomić aplikację A i użyć innej wersji dla aplikacji B.
Stworzyłem następujący skrypt po uzyskaniu pomocy online.
#!bin/sh
function setjdk() {
if [ $# -ne 0 ]; then
removeFromPath '/Library/Java/JavaVirtualMachines/'
if [ -n "${JAVA_HOME+x}" ]; then
removeFromPath $JAVA_HOME
fi
export JAVA_HOME=/Library/Java/JavaVirtualMachines/$1/Contents/Home
export PATH=$JAVA_HOME/bin:$PATH
fi
}
function removeFromPath() {
export PATH=$(echo $PATH | sed -E -e "s;:$1;;" -e "s;$1:?;;")
}
#setjdk jdk1.8.0_60.jdk
setjdk jdk1.7.0_15.jdk
Wstawiłem powyższy skrypt .plik profilu. Otwórz terminal, Typ vi .profil, dopisz skrypt do powyższego fragmentu i zapisz go. Po wy wpisz source .profile
, spowoduje to uruchomienie skryptu profilu bez konieczności ponownego uruchamiania terminal. Teraz wpisz java -version
to powinno pokazywać 1.7 jako aktualną wersję. Jeśli zamierzasz zmienić ją na 1.8, skomentuj linię setjdk jdk1.7.0_15.jdk
i odkomentuj linię setjdk jdk1.8.0_60.jdk
. Zapisz skrypt i uruchom go ponownie za pomocą polecenia source. Używam tego mechanizmu do zarządzania wieloma wersjami JDK / JRE, gdy muszę skompilować 2 różne projekty Mavena, które wymagają różnych wersji Javy.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-09-18 22:47:59
Ostatnio znalazłem Java version manager o nazwie Jabba i użycie jest bardzo podobne do menedżerów wersji innych języków, takich jak RVM(ruby), nvm(node), pyenv (python), itp. Jest również wieloplatformowy, więc zdecydowanie można go używać na Macu.
Po instalacji utworzy katalog w~/.jabba, aby umieścić wszystkie zainstalowane wersje Javy. "Obsługuje instalację Oracle JDK (domyślnie) / Server JRE, Zulu OpenJDK( od 0.3.0), IBM SDK, Java Technology Edition (od 0.6.0) i z własnych adresów URL.".
Podstawowe użycie jest wymienione na ich Githubie. Szybkie podsumowanie na początek:
curl -sL https://github.com/shyiko/jabba/raw/master/install.sh | bash && . ~/.jabba/jabba.sh
# install Oracle JDK
jabba install 1.8 # "jabba use 1.8" will be called automatically
jabba install 1.7 # "jabba use 1.7" will be called automatically
# list all installed JDK's
jabba ls
# switch to a different version of JDK
jabba use 1.8
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-04-26 20:19:31
Jenv na Mac Sierra:
Jeśli nie działa po instalacji, wykonaj tę poprawkę, aby dodać plik wykonywalny java do ścieżki
export PATH="$HOME/.jenv/shims:$PATH"
/ Align = "left" / Powodem jest to, że folder / bin nie istnieje już tak, jak opisano w jego stronie głównej, ale folder shim jest używany jako /bin.
- upewnij się~/.jenv is there
-
which java
może drukować /Biblioteka/... - jenv global 1.8
- jenv shell 1.8
Ostatecznie, which java
daje:
/Users / xxxx/.jenv/shims / java
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-10-31 01:06:40
Jest to wersja bardziej sucha dla Basha (bazująca na odpowiedzi Vegarda)
Zamień 1.7 i 1.8 NA wersje, które Cię interesują i otrzymasz alias o nazwie 'javaX'; gdzie ' X ' to wersja Javy (7 / 8 w poniższym fragmencie), która pozwoli Ci łatwo zmienić wersje
for version in 1.7 1.8; do
v="${version: -1}"
h=JAVA_"$v"_HOME
export "$h"=$(/usr/libexec/java_home -v $version)
alias "java$v"="export JAVA_HOME=\$$h"
done
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-04-05 12:51:05