Jak zainstalować Java 7 obok Java 6?

7

Używam MacBooka Pro z Mac OS X 10.8.2. Obecnie mam zainstalowaną Javę 6:

wdb-laptop:~ wdb$ 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)

Chciałbym zainstalować Java 7, aby grać z JavaFX, jednak wszystkie moje aplikacje do pracy nadal działają na Javie 6. Chciałbym więc zainstalować Java 7 „na boku”. Czy to możliwe? Jeśli tak to jak? Chcę się upewnić, że nie stracę instalacji Java 6, jeśli uruchomię plik .dmg z Oracle.

Wim Deblauwe
źródło

Odpowiedzi:

6

Oracle Java 7 nie usuwa dostarczonej przez Apple Java 6. Zmienia jednak / usr / bin / java, aby uruchomić Oracle Java.

Aby uruchomić jar z Javą 6 zamiast używać java w linii poleceń, wpisz pełną ścieżkę do java, tj. /System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home/bin/java

Mark
źródło
0

Miałem podobną sytuację w pracy, więc zrobiłem trochę badań i po kilku minutach konfiguracji przełączanie się między Java 6 i 7 (lub 7 i 8, w tym przypadku metoda to wersja agnostyczna).

Dla każdego z zainstalowaną wersją java /usr/libexec/java_home pokaże katalog JAVA_HOME, ale jest szczególnie wydajny, gdy masz wiele wersji Java zainstalowanych side-by-side w OS X.

Używając -V flaga, widać wszystko zainstalowanych maszyn JVM:

$ /usr/libexec/java_home -V
Matching Java Virtual Machines (3):
    1.7.0_67, x86_64:   "Java SE 7" /Library/Java/JavaVirtualMachines/jdk1.7.0_67.jdk/Contents/Home
    1.6.0_65-b14-466.1, x86_64: "Java SE 6" /System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home
    1.6.0_65-b14-466.1, i386:   "Java SE 6" /System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home

Możesz również uzyskać wartość JAVA_HOME dla określonej maszyny JVM w następujący sposób:

$ /usr/libexec/java_home -v 1.6
/System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home
$ /usr/libexec/java_home -v 1.7
/Library/Java/JavaVirtualMachines/jdk1.7.0_67.jdk/Contents/Home

Łącząc to wszystko, dodałem to do mojego ~ / .profile :

## java home
alias j6="export JAVA_HOME=\$(/usr/libexec/java_home -v 1.6);echo 'using Java 6'"
alias j7="export JAVA_HOME=\$(/usr/libexec/java_home -v 1.7);echo 'using Java 7'"
## manual switch for 1.6 or 1.7
j6 ## enable java 6 (or just run j6 in terminal)
## j7 ## enable java 7 (or just run j7 in terminal)

Widzicie więc, że mój terminal domyślnie obsługuje Java6, ale mogę to zmienić, wpisując po prostu j7 w linii poleceń (lub edytując plik ~ / .profile):

$ java -version
java version "1.6.0_65"
Java(TM) SE Runtime Environment (build 1.6.0_65-b14-466.1-11M4716)
Java HotSpot(TM) 64-Bit Server VM (build 20.65-b04-466.1, mixed mode)    
$ j7
using Java 7
$ java -version
java version "1.7.0_67"
Java(TM) SE Runtime Environment (build 1.7.0_67-b01)
Java HotSpot(TM) 64-Bit Server VM (build 24.65-b04, mixed mode)
Jordan
źródło