Installato Java 7 su Mac OS X ma Terminal sta ancora utilizzando la versione 6
Ho installato JDK 7u7 scaricato dal sito web di Oracle. Ma dopo l'installazione, il terminale mostra ancora java versione 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)
Qualche idea sul perché java 7 non viene visualizzato?
Ans: OK, il problema è stato risolto. Ecco la risposta: Ho scoperto che il mio terminale ha un .bash_profile e la variabile java home è impostata su 1.6
export JAVA_HOME="/System/Library/Frameworks/JavaVM.framework/Versions/1.6.0/Home"
Quindi questa è la linea che causa il problema ogni volta che ho aperto una nuova finestra di terminale. Basta rimuovere questa linea risolverà il problema. Hai ancora bisogno di seguire ciò che ha detto @aleroot, ma se questo non funziona per voi, controllare il .bash_profile (o .bashrc) impostazione del file per vedere se hai precedentemente esportato qualsiasi versione di Java.
24 answers
Perché è necessario inserire nel riquadro delle preferenze Java e contrassegnare solo la JVM 7 in questo modo :
Per aprire facilmente e rapidamente il riquadro Java Preferences in Mac OS X puoi semplicemente chiamare spotlight con ⌘+SPAZIO e digitare Preferenze di sistema verrà visualizzato nell'ultima riga della finestra.
Il programma di installazione di Oracle inserisce java all'interno di /Library/Internet Plug-Ins/JavaAppletPlugin.plugin
. E non sovrascrive /usr/bin/java
. Quindi, se si emette un
whereis java
Nel terminale, restituirà /usr/bin/java. (che a sua volta punta a /System/Library/Frameworks/JavaVM.framework/Versions/A/Commands/java
, che è la versione 1.6 di Apple).
Quindi, se vuoi usare la nuova versione di java, sostituisci il link simbolico /usr/bin/java
in modo che punti a /Library/Internet\ Plug-Ins/JavaAppletPlugin.plugin/Contents/Home/bin/java
invece:
sudo rm /usr/bin/java
sudo ln -s /Library/Internet\ Plug-Ins/JavaAppletPlugin.plugin/Contents/Home/bin/java /usr/bin
Installa il JDK 7 e questo problema si risolverà da solo.
Assicurati di ottenere il Java Development Kit (JDK) che include compilatori e cose del genere, piuttosto che solo il Java Runtime Environment (JRE) .
vi ~/.bash_profile
Aggiungere
export JAVA_HOME=`/usr/libexec/java_home -v 1.7`
Indica alla destinazione del collegamento /usr/bin/java
di utilizzare l'ultimo pacchetto Java 7 installato in
/Library/Java/JavaVirtualMachines/
Così per JDK 1.7.0_17
JAVA_HOME
sarebbe:
/Library/Java/JavaVirtualMachines/jdk1.7.0_17.jdk/Contents/Home
Nota: Ci sono stati un sacco di cambiamenti in questo settore di recente per spostare Mac OS X da Appels proprio sistema pacchetti Java integrati per Oracle pacchetti Java basati. La soluzione di cui sopra funziona bene a partire da Mac OS X 10.8.2
Nel mio caso, il problema era che Oracle lo stava installando in una posizione diversa da quella a cui ero abituato.
Scarica da Oracle: http://java.com/en/download/mac_download.jsp?locale=en
-
Verifica che sia installato correttamente cercando nelle preferenze di sistema:
- Comando-Spazio per aprire Spotlight, digitare 'Preferenze di sistema', premere invio.
- Fare clic sull'icona Java nella riga inferiore. Dopo l'apertura del Pannello di controllo Java, fare clic sulla scheda' Java', ' Visualizza...', e verifica che l'installazione abbia funzionato. Puoi vedere anche un "Percorso", che puoi inserire nei comandi qui sotto nel caso in cui siano diversi dal mio.
-
Verifica che la versione sia come ti aspetti (sub nel tuo percorso se necessario):
/ Libreria / Internet \ Plug-in/JavaAppletPlugin.plugin / Contents / Home / bin / java-versione
-
Crea collegamento da / usr / bin / java alla nuova installazione
Per saperne di più clicca qui\ Contatti /.plugin / Contents / Home / bin / java/usr / bin / java -
Sanity controlla la tua versione:
Java-versione
Avevo riscontrato un problema simile con il terminale che non aggiornava la versione Java in modo che corrispondesse alla versione installata sul mac.
Non si è verificato alcun problema con la variabile ambientale JAVA_HOME impostata
Ho trovato una soluzione temporanea e un po ' dolorosa ma funzionante.
In te .bash_profile aggiungi la riga:
export JAVA_HOME="/Library/Java/JavaVirtualMachines/jdk1.7.0_11.jdk/Contents/Home"
(Questo è il percorso sulla mia macchina ma potrebbe essere diverso sul tuo, assicurati di ottenere il tuo. I percorsi dovrebbero corrispondere a / Libreria / Java / JavaVirtualMachines/)
La corsa source ~/.bash_profile
Come ho già detto questa è una soluzione temporanea per il cerotto perché il percorso home java è hard-coded. Non c'è davvero modo di impostare il percorso per ottenere l'ultimo dato che è ciò che Apple sta già facendo per terminal e il problema è che la variabile d'ambiente java_home di Apple non viene aggiornata.
Dal momento che El Capitan, è difficile eliminare il link simbolico /usr/bin/java
, a causa dell'introduzione della nuova politica "rootless".
Pertanto, ho semplicemente aggiunto il percorso all'ultima versione di java (nel mio caso questo è /Library/Internet Plug-Ins/JavaAppletPlugin.plugin/Contents/Home/bin
) al PATH
nel mio file .bashrc
:
# Use latest java version
export PATH=/Library/Internet\ Plug-Ins/JavaAppletPlugin.plugin/Contents/Home/bin:$PATH
Per ricaricare il file .bashrc
per la sessione corrente, eseguire source ~/.bashrc
nella shell. Devi farlo solo per le sessioni che erano state avviate prima di cambiare il file .bashrc
.
Ora viene utilizzata l'ultima versione, quando usa java
nella shell.
Per me il modo più semplice e pulito è installare Java usando homebrew come descritto qui:
Https://stackoverflow.com/a/28635465
brew update
brew cask install java
Il problema di base: {[0] } punta a uno fornito inizialmente da OSX stesso (/System/Library/Frameworks/JavaVM.framework/Versions/Current/Commands/java
)
Dobbiamo puntare a quello scaricato dal programma di installazione JDK. I passaggi seguenti sono per OSX 10.10.4 Yosemite.
- Apri Preferenze di sistema -> seleziona Java. Si apre la finestra Java.
- Fare clic sulla scheda Java in alto. Clicca sul pulsante' Visualizza'.
- La scheda Impostazioni Java Runtime Environment si apre come di seguito:
- Fare doppio clic sull'elemento
Path
e copiare percorso (cmd + c). Questo è l'ultimo installato dal programma di installazione/aggiornamento JDK. Nel mio caso, il percorso era/Library/Internet\ Plug-Ins/JavaAppletPlugin.plugin/Contents/Home/bin/java
- Apri terminale. In questo passaggio, ci accingiamo a puntare (collegamento simbolico,
ln -s
comando) il binario java di sistema a quello più recente, che abbiamo scoperto nel passaggio precedente. Eseguire il comando seguente:
sudo ln -s /Library/Internet\ Plug-Ins/JavaAppletPlugin.plugin/Contents/Home/bin/java /usr/bin/java
Questo è tutto. Per verificare, puoi semplicemente eseguire
java -version
sul terminale. Dovrebbe produrre l'ultima versione che hai installato/aggiornato.
Puoi eseguire il seguente comando nel tuo terminale :
export PATH="/Library/Internet Plug-Ins/JavaAppletPlugin.plugin/Contents/Home/bin:$PATH"
E questo sostituisce il vecchio java con uno nuovo.
L'ho fatto
export JAVA_HOME=`/usr/libexec/java_home`
E questo ha risolto il mio problema di Java 8.
Prima:
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)
Dopo:
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)
Http://www.java.com/en/download/faq/java_mac.xml è un bel posto per capire, mentre Apple sta interrompendo il supporto a Java, perché le preferenze Java non esistono più e si basano su System_Preferences => Java => Java se Java 7 di Oracle è installato.
Posso suggerirti di dare un'occhiata allo strumento Jenv
Questo ti permetterà di passare in qualsiasi momento tra le JVM installate.
Semplicemente come:
jenv global oracle-1.7
Poi più tardi a scopo di test:
jenv global oracle-1.6
E hai molti più comandi disponibili.
Hard-coding il percorso JAVA_HOME potrebbe non essere l'idea migliore. L'utilità /usr/libexec/java_home
sill funziona per me su Mac OSX Lion 10.7.5 e JDK 1.7.0_13. Secondo la sua pagina man, è pensato per essere utilizzato con il vecchio pannello delle preferenze Java di Apple, ma sembra funzionare con la sostituzione fornita da Oracle (Pannello di controllo Java). Ad esempio l'esecuzione di /usr/libexec/java_home -V
elenca tutti i JDK installati (entrambi 1.6.* e 1.7.* ) sulla mia macchina.
Quindi, come discusso in altri thread (ad esempio Cosa dovrei impostare JAVA_HOME su OSX), consiglierei comunque di aggiungere la seguente riga al tuo .bash_profile:
export JAVA_HOME=$(/usr/libexec/java_home)
Questo è pazzo! In che modo Oracle fornisce un programma di installazione che non installa nulla!?
Ad ogni modo per me è stato:
sudo rm /usr/bin/java
sudo ln -s /Library/Java/JavaVirtualMachines/jdk1.8.0_31.jdk/Contents/Home/jre/bin/java /usr/bin/java
Dove 1.8.0_31 è la versione Java installata...
Soluzione semplice
export PATH="/Library/Internet Plug-Ins/JavaAppletPlugin.plugin/Contents/Home/bin:$PATH"
Penso che tu possa provare a installare jdk non jre. Installando jdk, java in / usr / bin / java verrà sostituito e tutte le librerie funzioneranno correttamente.
Nel caso in cui si disponga di diverse versioni Java sul computer e si desideri sceglierlo dinamicamente in fase di runtime, ovvero, nel mio caso, ho due versioni:
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/
È possibile modificarli modificando il contenuto del profilo/etc/. Basta aggiungere (o modificare) le seguenti due righe alla fine del file:
export JAVA_HOME=YOUR_JAVA_PATH/Contents/Home
export PATH=$JAVA_HOME/bin:$PATH
Nel mio caso, dovrebbe essere come il seguente se voglio usare:
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
Dopo aver salvato il file, eseguire source /etc/profile
e dovrebbe funzionare. Ecco i risultati quando uso la prima e la seconda opzione di conseguenza:
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)
Il processo è simile se la cartella Java si trova in posizioni diverse.
È possibile eseguire questo comando per trovare la versione di Java che si trova in / Library/Internet Plugins/:
defaults read /Library/Internet\ Plug-Ins/JavaAppletPlugin.plugin/Contents/Info.plist CFBundleVersion
Dal momento che non ho affrontato questo problema, sto prendendo un sospetto {
Puoi provare questo:
Dove punta il soft link "java_home":
ls -lrt /usr/libexec/java_home
Uscita: (stentata) per maggiori informazioni clicca qui.framework / Versions / Current / Commands / java_home
* * ls-lrt / Sistema / Libreria / Framework / JavaVM.quadro / Versioni Il mio MAC Produce quanto segue :
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
Sulla base di questo , potremmo ottenere un suggerimento per procedere ulteriormente ?
Ho risolto questo problema reinstallando Yosemite e quindi ricontrollando la versione java sul terminale (java-version) e (javac-version). Funziona perfettamente now.It non sta cambiando in java 7 come versione 6 ancora presente su (comando + n) libray>java>javavirtualmachine>la versione corrente di javac.è necessario rivolgersi a java home .
Ho risolto questo problema con
sudo rm /usr/bin/java
E ho scaricato e installato l'ultimo ambiente di runtime Java SE: 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
non ha funzionato per me perché ho ottenuto Operation not permitted
. El Capitan ora protegge alcune directory di sistema in modalità "rootless" (ovvero Protezione dell'integrità del sistema). È applicabile a macOS Sierra e probabilmente alle nuove versioni di macOS per il prossimo futuro.
Sta accadendo perché la vostra .bash_profile non riflette changes.To riflettilo, usa il seguente comando
$ source .bash_profile
L'installazione tramite JDK DMG distribuito dal sito Oracle aggiorna automaticamente tutto per me. Ho visto (in El Capitan) l'aggiornamento tramite System Preferences > Java
fare aggiornamenti ma che non riflettono la riga di comando. L'installazione tramite DMG fa il lavoro.