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.

Author: Yang, 2012-10-06

24 answers

Perché è necessario inserire nel riquadro delle preferenze Java e contrassegnare solo la JVM 7 in questo modo :

Preferenze Java

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.

 61
Author: aleroot, 2015-10-03 19:35:02

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
 289
Author: Ákos, 2015-02-27 19:55:24

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) .

 111
Author: BrainO2, 2016-08-03 17:24:11

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

 103
Author: Uwe Günther, 2013-03-09 02:50:57

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

  1. 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.
  2. 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

  3. Crea collegamento da / usr / bin / java alla nuova installazione

    Per saperne di più clicca qui\ Contatti / .plugin / Contents / Home / bin / java/usr / bin / java
  4. Sanity controlla la tua versione:

    Java-versione

 55
Author: dale.hamill, 2013-07-22 19:58:34

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.

 31
Author: Derek, 2015-04-12 23:35:31

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.

 23
Author: TabeaKischka, 2016-12-28 10:46:44

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
 19
Author: Bernhardt Scherer, 2017-05-23 11:47:26

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: Scheda Impostazioni JRE
  • 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.

 12
Author: Aswin Kumar, 2015-11-06 17:02:48

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.

 11
Author: Amulya Kashyap, 2017-05-22 08:10:20

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)
 10
Author: Climbs_lika_Spyder, 2014-06-24 17:31:54

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.

 7
Author: revher, 2012-10-26 15:58:45

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.

 7
Author: TitiMoby, 2013-02-13 15:41:10

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)
 6
Author: zagyi, 2017-05-23 12:02:46

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...

 6
Author: Kevin Parker, 2016-08-31 04:32:34

Soluzione semplice

export PATH="/Library/Internet Plug-Ins/JavaAppletPlugin.plugin/Contents/Home/bin:$PATH"
 4
Author: Mick, 2017-05-03 00:14:06

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.

 3
Author: ParaDevil, 2015-07-05 04:34:05

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.

 2
Author: nxhoaf, 2018-03-27 23:08:28

È 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
 1
Author: Hefewe1zen, 2016-03-29 14:59:57

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 ?

 0
Author: user1428716, 2013-02-13 14:57:51

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 .

 0
Author: AJAY, 2015-05-14 22:49:00

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.

 0
Author: Charles Hamel, 2017-04-12 19:18:13

Sta accadendo perché la vostra .bash_profile non riflette changes.To riflettilo, usa il seguente comando

$ source .bash_profile
 0
Author: Raghav Sharma, 2018-02-01 11:48:57

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.

 0
Author: Santanu Karar, 2018-07-27 17:08:44