Installazione di Java su OS X 10.9 (Mavericks)


321

Ho installato JDK su Mac OS X v10.8 (Mountain Lion). Quando l'ho aggiornato a Mac OS X v10.9 (Mavericks) ed eseguito java -versionnel terminale, ha mostrato:

Nessun runtime Java presente, che richiede l'installazione.

Quindi ho installato manualmente JDK (1.7) sul mio Mac. Sembra che l'installazione abbia funzionato bene. Al termine dell'installazione, ho aperto il terminale e ho anche digitato java -version. Ha anche mostrato lo stesso errore:

Nessun runtime Java presente, che richiede l'installazione.

Come posso risolvere questo problema?


1
Non so quale sia il problema nel terminale, ma eseguo l'eclissi e tutti i progetti si stanno compilando bene in mavericks
Sunny

1
sembra che il vecchio lanciatore Java supportasse solo jdk 1.6, ma Mavericks non ha 1.6 installato di default.
Shawn,

1
Hai installato java 6, non java 7 poiché OP inizialmente implicava che fossero necessari. Sono interessato a come viene raggiunta questa soluzione. Inoltre, ci deve essere un tipo di approccio "alternativo" qui che affronti direttamente il feedback dal terminale.
Rondo,

4
Questo è ottimo per Java 6, ma come si fa a far funzionare Java 7?
190290000 Rublo uomo

2
Aggiunta una potenziale risposta per installare Java 7 JRE e farlo funzionare nel Terminale: stackoverflow.com/a/19582689/346286
analogico

Risposte:


279

Il nuovo Mavericks (10.9) mi ha mostrato la "Richiesta di installazione", ma non è successo nulla.

La soluzione era scaricare e installare manualmente il pacchetto Java ufficiale per OS X, che è in Java per OS X 2013-005.

Aggiornamento: come menzionato nei commenti seguenti, esiste una versione più recente di questo stesso pacchetto:

Java per OS X 2014-001

Java per OS X 2014-001 (correzione della scadenza precedente)

Java per OS X 2014-001 include miglioramenti dell'installazione e sostituisce tutte le versioni precedenti di Java per OS X. Questo pacchetto installa la stessa versione di Java 6 inclusa in Java per OS X 2013-005.


Stessa cosa per me. Un'altra scelta è installare Java da Oracle. Quale pensate sia meglio? Oracle sembra avere Java aggiornato più rapidamente di Apple.
Ngoc Pham,

2
ma questo ti dà JDK 6. come possiamo usare direttamente JDK 6?
Shawn,

2
@Shawn Apple disabilita JDK 7. già installato. Ma puoi ottenere alcune FAQ e installare da qui: java.com/en/download/faq/java_mac.xml ma non l'ho provato.
Guy,

Se hai installato sia java6 che java7, puoi selezionare v6 nella tua shell con: export JAVA_HOME = / Sistema / Libreria / Java / JavaVirtualMachines / 1.6.0.jdk / Contenuto / Home
Jürgen Strobel,

1
Perché dovresti usare java a 32 bit su un sistema operativo a 64 bit? 64 bit Java è in realtà più veloce di 32 bit con Mavericks.
MiB

196

Se desideri installare solo l'ultimo JRE ufficiale da Oracle, puoi ottenerlo lì, installarlo ed esportare il nuovo JAVA_HOME nel terminale.

Questo è il modo più pulito che ho trovato per installare l'ultimo JRE.

Puoi aggiungere la export JAVA_HOMElinea nel tuo .bashrcper avere javapermanentemente nel tuo Terminale:

echo export JAVA_HOME=\"/Library/Internet Plug-Ins/JavaAppletPlugin.plugin/Contents/Home\" >> ~/.bashrc

37
Penso che sia un po 'difficile definire JAVA_HOMEindicare chiaramente quello che è chiaramente un plug-in del browser invece della vera VM. Quando si installano gli strumenti della riga di comando XCode, si ottiene uno strumento per ottenere il percorso corretto, /usr/libexec/java_home. Vedi developer.apple.com/library/mac/documentation/Darwin/Reference/… .
Ilkka,

8
@Ilkka - sembra strano, ma è proprio lì che viene installato Oracle JRE. Il java di Apple (che si ferma su java 6) non si mescola con l'oracolo come si potrebbe desiderare
Orion Edwards,

12
Un mio collega (che purtroppo non ha la reputazione richiesta qui per aggiungere commenti) vuole aggiungere che l'impostazione JAVA_HOME dovrebbe essereexport JAVA_HOME="/Library/Java/JavaVirtualMachines/jdk1.7.0_45.jdk/Contents/Home"
Stephan Windmüller,

1
Ho installato jdk7u45 da Oracle e uso ancora export JAVA_HOME = $ (/ usr / libexec / java_home) nel mio profilo bash. jdk7u45 funziona molto bene, incluso il pannello delle preferenze del sistema java. Ora sto aggiornando a jdk7u51.
MiB

2
Ho dovuto aggiungere export JAVA_HOME="/Library/Internet Plug-Ins/JavaAppletPlugin.plugin/Contents/Home"a ~ / .profile invece di ~ / .bashrc o ~ / .bash_profile per ottenere questo lavoro.
LarS,

64

Il posto giusto per scaricare JDK per Java 7 è Download Java SE .

Tutti gli altri collegamenti di cui sopra, per quanto posso dire, né forniscono i JRE o di Java 6 download (per inciso, se si desidera eseguire Eclipse o altri IDE, come IntelliJ IDEA , è necessario il JDK, non il JRE ).

Per quanto riguarda IntelliJ IDEA, che ti chiederà comunque di installare Java 6 poiché a quanto pare ha bisogno di un caricatore di classe precedente o qualcosa del genere: basta seguire le istruzioni quando appare la finestra di dialogo e installerà JDK 6 nel posto giusto.

Successivamente, dovrai fare quanto sudo ln -snfindicato nella risposta sopra:

sudo ln -nsf /Library/Java/JavaVirtualMachines/jdk1.7.0_45.jdk/Contents \
    /System/Library/Frameworks/JavaVM.framework/Versions/CurrentJDK

(copiato qui come è stato detto che "sopra" potrebbe non avere senso poiché le risposte vengono riordinate).

Ho anche impostato il mio JAVA_HOMEper indicare dove è jdk_1.7.0_xx.jdkstato installato:

export JAVA_HOME="/Library/Java/JavaVirtualMachines/jdk1.7.0_45.jdk/Contents/Home"

Quindi aggiungilo al tuo PATH:

export PATH=$JAVA_HOME/bin:$PATH

L'alternativa è sfuggire al folle labirinto di hyperlink di Apple, ma onestamente la vita è troppo breve per disturbare.


4
Vedi il mio commento a un'altra risposta per quello che è forse un modo migliore per ottenere quel percorso.
Ilkka,

1
Poiché questa risposta ha più voti, il bit che dice sudo ln -snfnella risposta sopra non è più preciso. Questo in realtà si riferisce alla risposta di Ronald
Karthic Raghupathi il

@KarthicRaghupathi Non sono sicuro di aver compreso appieno il commento (l'uso di thise thatè un po 'confuso) ma hai ancora bisogno di un link simbolico dal luogo / Sytem / Library / etc al luogo effettivo in cui Oracle installa JVM (/ Library / etc .) o le applicazioni non saranno in grado di trovare il runtime Java.
Marco Massenzio,

@Marco Ora che me lo dici, quando leggo il mio commento, non ha molto senso. :) Mi permetta di chiarire. Nella tua risposta scrivi "Successivamente, dovrai fare quanto sudo ln -snfindicato nella risposta sopra;". Le risposte aumentano o diminuiscono in base al numero di voti positivi che ottengono. La mia intenzione era di fornire solo un riferimento diretto alla risposta che aveva il sudo ln -snfcomando.
Karthic Raghupathi,

Modificato - ma in realtà non è sicuro che il riordino avvenga davvero: sembrano tutti essere dove erano, indipendentemente dai voti. NVM
Marco Massenzio,

14

Ho scaricato e installato JDK 1.7 da Oracle . Nella console / nel Terminale Java 7 funziona bene.

Quando avvio un programma Java (come Eclipse ) tramite la GUI, ottengo:

Per aprire "Eclipse.app" è necessario un runtime Java SE 6. Vuoi installarne uno adesso?

Poiché non volevo installare la vecchia versione di Java, ho usato la seguente soluzione alternativa:

sudo ln -nsf /Library/Java/JavaVirtualMachines/jdk1.7.0_45.jdk/Contents /System/Library/Frameworks/JavaVM.framework/Versions/CurrentJDK

Crediti a monkehWorks .


1
Devo usarlo ln -snfperché sono arrivato Operation not permittedconln -sf
Lars Blumberg il

Grazie, ho modificato la risposta e ho aggiunto l'opzione -n ​​al comando ln.
Ronald,

+1 Esattamente quello che stavo cercando. Grazie! La CLI stava ottenendo il riferimento a JDK 7 dopo l'installazione. Tuttavia, per far sì che le app della GUI prendano il JDK corretto questo passaggio è necessario.
Karthic Raghupathi,

Era fiducioso, ma non ha funzionato per me. Android Studio 0.3.2 insiste sul "download di Java 6" che non ho intenzione di fare. Oracle Java 7 JDK è installato.
akauppi,

È necessaria una versione a 64 bit di Eclipse. Il 32 bit richiede Apple Java.
Thorbjørn Ravn Andersen,

4

Questo errore si verifica perché il file plist di IntelliJ IDEA richiede Java versione 1.6 *. Per risolvere questo problema, sostituire 1.6 * con 1.8 *.

<key>JVMOptions</key>
<dict>
    <key>ClassPath</key>
      ...

    <key>JVMVersion</key>
    <string>1.8*</string>

    <key>MainClass</key>
    <string>com.intellij.idea.Main</string>
    <key>Properties</key>
<dict>

Questo è stato per me. Il mio problema era quando aggiornavo a osx 10.9, potevo ancora accedere a java dal terminale e tutto il resto (incluso eclipse funzionava bene). Solo Android Studio stava causando questo errore.
ucsunil,

Questo non ha funzionato per me su OS X 10.10.1, si lamenta che non è disponibile la versione 1.8 (anche se JRE 8 è installato correttamente).
Emmanuel Bourg,

Hai controllato se JAVA_HOME è impostato?
Fabio Fumarola,

3

L'OP implicava che Java 7 era la necessità. E Java 6 infatti non viene più "supportato", quindi 7 è la versione che dovresti installare a questo punto a meno che tu non abbia problemi con le app legacy.

Puoi scaricarlo qui: http://java.com/en/download/mac_download.jsp?locale=en


Non dovremmo supporre che l'attuale distribuzione Apple di Java 6 non sia supportata.
Graham Perrin,

Ho inserito la parola "supportato" tra virgolette per evitare di cercare di risolvere un problema complicato. Gli addebiti Oracle per qualsiasi supporto di 6 ... e tale addebito si applicherebbe logicamente anche ad Apple; quindi, Apple è "sola" senza un contratto. Ne hanno uno e hanno intenzione di lavorare con le patch per MacOSX? Il contratto consente ancora la ridistribuzione? Ora ci sono stati 2 aggiornamenti Java 7 da Oracle dall'ultimo aggiornamento di Apple a 6. Storicamente, tendono a bloccare le versioni. Assunzione, forse; Un presupposto sicuro? Così sembra.
Rondo,

3

La mia esperienza per l'aggiornamento di Java SDK su OS X 10.9 è stata molto più semplice.

Ho scaricato l'ultimo Java SE Development Kit 8, dal download di SE e installato il file .dmg. E durante la digitazione java -versionnel terminale è stato visualizzato quanto segue:

versione java "1.8.0_11"

Java (TM) SE Runtime Environment (build 1.8.0_11-b12)

VM per server a 64 bit Java HotSpot (TM) (build 25.11-b03, modalità mista)



1

Dall'OP:

Alla fine l'ho reinstallato da Java per OS X 2013-005. Ha risolto questo problema.


1

Questo errore indica che Java non è installato correttamente.

1) brew cask install java (No need to install cask separately it comes with brew)

2) java -version

java version "1.8.0_131"
Java(TM) SE Runtime Environment (build 1.8.0_131-b11)

PS - Cos'è brew-botte? Homebrew-Cask estende Homebrew e risolve il problema dell'esecuzione di un comando aggiuntivo: "Per installare, trascina questa icona ..." dopo aver installato un'applicazione usando Homebrew .

NB - Questo problema non è specifico di Mavericks, otterrai quasi tutto l'OS X, incluso EL Capitan.


0

Non è necessario installare JDK, che è il kit di sviluppo , ma solo JRE, che è l' ambiente di runtime .


6
È vero. Tuttavia, ciò che Apple fornisce è JDK e JRE di Oracle è proprio lì per il plug-in Internet, il javacomando non è collegato automaticamente a livello di sistema, quindi viene ancora visualizzato il messaggio "Nessun runtime Java presente, che richiede l'installazione". quando si digita java -versionnel Terminale.
Ngoc Pham,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.