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.