Dove è installato Java su Mac OS X?


727

Ho appena scaricato Java 7u17 su Mac OS 10.7.5 da qui e poi l'ho installato con successo. Per fare un po 'di programmazione JNI, devo sapere dove Java è installato sul mio Mac.

Ho pensato che all'interno della /Library/Java/JavaVirtualMachines/cartella ci sarebbe stata una cartella chiamata 1.7.0.jdko qualcosa del genere, ma poi ho scoperto che la cartella è vuota. Ciò è stato confermato eseguendo ls /Library/Java/JavaVirtualMachines/nel Terminal. Ho provato a cercarlo per scoprire se era installato da qualche altra parte, ma questo non sembra alzare nulla.

Qualcuno potrebbe dirmi dove Java è installato sul mio Mac?


12
Per chiudere gli elettori / riaprire - questa domanda non è esplicitamente fuori tema (domande sugli strumenti comunemente usati dai programmatori) . Sfortunatamente, è stato bandito dal meta .
Rob

Risposte:


1384

Utilizzare il /usr/libexec/java_home -v 1.8comando su una shell del terminale per capire dove si trova la directory principale di Java 1.8

Se vuoi solo scoprire la home directory della tua versione più recente di Java, ometti la versione. per esempio/usr/libexec/java_home


Sono arrivato a questa domanda perché stavo ricevendo un errore in eclipse sul mio mac perché stavo ricevendo un errore sulla prima riga del programma "import java.util. *." Sospetto fortemente che ciò avvenga perché il percorso java non è impostato correttamente o qualcosa del genere (anche se l'ho impostato una volta prima). Ho inserito il comando in questa risposta e ottengo una directory. Posso semplicemente incollare quella directory nella casella di testo nella finestra "Configurazione della cartella della libreria nativa"? O questa directory appartiene da qualche altra parte?
OK Dammi,

47
Aggiunto export JAVA_HOME=`/usr/libexec/java_home`a .bash_profile in modo che JAVA_HOME sia sempre impostato (notare i segni di spunta intorno al comando libexec)
Steve Henty,

Se vuoi solo sapere se JDK è installato sul tuo mac, ometti il ​​numero di versione ed esegui dal terminale: $ echo $ (/ usr / libexec / java_home)
Donato

3
Su Mac 10.12.3, dovremmo /usr/libexec/java_home -- vmostrare la versione più recente di java
klion26

117

È possibile utilizzare il echo $(/usr/libexec/java_home)comando nel terminale per conoscere il percorso in cui è installato Java.


7
Mi piace questa soluzione meglio della risposta accettata perché è indipendente dalla versione della JVM installata.
Alexandre Santos,

1
Questo non ha trovato la mia versione di Java 8 installata da Oracle.
Antoine Lizée,

13
Perché hai echo $(...)lì? Non /usr/libexec/java_homefa lo stesso?
Paŭlo Ebermann,

1
La risposta accettata non ha funzionato per me, ma ha funzionato! (Di solito non sono un utente mac / unix)
Roel,

@ PaŭloEbermann Non funziona per me senza segno e parentesi dolar.
Nikola Stojaković,

80

Si scopre che in realtà avevo installato Java 7 JRE, non JDK. Il link per il download corretto è qui . Dopo averlo installato, jdk1.7.0jdkappare nella directory JavaVirtualMachines.


49
Per me, era sotto /Library/Java/JavaVirtualMachines/jdk1.7.0_60.jdk(sapendo che per il JDK 1.6 il percorso è: /System/Library/Java/JavaVirtualMachines/1.6.0.jdk/)
Zakaria

Grazie mille! Non ho notato che avevo installato JRE per caso o xD
Oliver Ni

1
export JAVA_HOME = $ (/ usr / libexec / java_home) a ~ / .bash_profile
Oleksii Kyslytsyn

34

Se installi solo JRE, sembra essere messo su:

/Library/Internet Plug-Ins/JavaAppletPlugin.plugin/Contents/Home

2
Non dovresti fare affidamento su questo esistente. Se hai bisogno di JRE, raggruppalo all'interno della tua applicazione.
swingler

L'impostazione di JAVA_HOME con un percorso contenente un personaggio spaziale è difficile! Non ci sono riuscito ...
Antoine Rosset,

puoi creare da qualche parte un link a questa directory e impostare JAVA_HOME su quel link
Kuba

Qui è dove il pannello Preferenze di sistema "Java" sembra installarlo.
David Avendasora,

2
@AntoineRosset, puoi impostarlo in questo modo:export JAVA_HOME=/Library/Internet\ Plug-Ins/JavaAppletPlugin.plugin/Contents/Home
coda

24

Usa la funzione di ricerca unix per trovare i java installati ...

sudo find / -name java

19
Non è necessario sudo per eseguire find per comandi generalmente accessibili. Se non si desidera visualizzare i messaggi di errore relativi a directory inaccessibili, eliminare i messaggi anziché utilizzare inutilmente i privilegi di root. Usare sudo tutto il tempo è una cattiva abitudine. Reindirizza stderr a / dev / null, in questo modo: trova / -name java 2> / dev / null
Walter Underwood,

1
Cosa devo fare se ho bisogno di guardare anche sotto directory inaccessibili?
serkan,

2
Il punto di Walter è che il javabinario sarà leggibile dal mondo, quindi sudonon è necessario. La tua risposta è ancora utile :)
Jared Beck,

Sì, l'ho appena usato per trovare src.zip (il codice sorgente di java jdk)
Dinis Cruz,

export JAVA_HOME = $ (/ usr / libexec / java_home) a ~ / .bash_profile
Oleksii Kyslytsyn

22

Prova questo, è un modo semplice per trovare il percorso java installato in Mac OS X,

Vai a

1) / Libreria ovvero Macintosh HD / Libreria

inserisci qui la descrizione dell'immagine

2) Fare clic su Libreria per trovare la cartella Java.

inserisci qui la descrizione dell'immagine

3) Quindi il percorso finale è

/Library/Java/JavaVirtualMachines/jdk1.8.0_144.jdk/Contents/Home

Spero che questo sia di aiuto per qualcuno.


1
Abbastanza utile quando devi indicare esplicitamente il JDK da un IDE. Grazie
Shwetabh Shekhar,

Quanto sono denso? Il mio terminale dice che ho 2 jdk installati in / Library / Java / JavaVirtualMachines / ma non riesco a trovarli quando navigo in quella directory nel finder ... Quanto posso ottenere ...
SoftwareSavant

@SoftwareSavant, prega ref stackoverflow.com/a/14875241 risposta, E 'può essere di aiuto voi.
Jaywant Khedkar,

19

La struttura del pacchetto Java di Mac OS è leggermente diversa da quella di Windows. Non essere arrabbiato per questo come uno sviluppatore deve solo impostare PATHe JAVA_HOME.

Quindi nel .bash_profileset JAVA_HOMEe PATHcome sotto. Questo esempio è per Java 6:

export JAVA_HOME=/System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home
export PATH=/System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home/bin:$PATH

12
Questo rimuove tutto il resto dal percorso? Fallo solo se stai usando Java e nient'altro nel tuo sistema.
Paŭlo Ebermann,

export JAVA_HOME = $ (/ usr / libexec / java_home) in ~ / .bash_profile.
Oleksii Kyslytsyn il

17

Se digiti

java -verbose 

Ciò fornisce anche la posizione da cui vengono caricati i barattoli e quindi anche il percorso java.


Ho aggiunto export JAVA_HOME = $ (/ usr / libexec / java_home) a ~ / .bash_profile.
Oleksii Kyslytsyn il

8

Modificato: Alias ​​alla versione java corrente è /Library/Java/Home

Per ulteriori informazioni: un collegamento


Sarebbe un alias per la versione più recente, che punta correttamente all'SDK Java 7 una volta installato.
Thunderforge,

1
Questo collegamento esiste solo per scopi legacy e non verrà aggiornato installando Java 7. Non utilizzare questo percorso.
swingler

Ho aggiornato export JAVA_HOME = $ (/ usr / libexec / java_home) su ~ / .bash_profile.
Oleksii Kyslytsyn il

8

basta scrivere /Library/Java/JavaVirtualMachines/
in Vai alla cartella -> Vai nel Finder


ok, l'ho appena provato e sono riuscito a navigare nella directory. Perché non riesco a navigare in quella cartella normalmente nel Finder? È solo questo Apple ad essere più fastidioso ... Anche extra fastidioso, Gradle versione 4.3 non funziona con nessuna versione di Java ad eccezione di Java 8
SoftwareSavant

export JAVA_HOME = $ (/ usr / libexec / java_home) a ~ / .bash_profile
Oleksii Kyslytsyn

6

Ho appena installato JDK per la versione 21 di Java SE 7 e ho scoperto che è installato in una directory diversa da Java 6. di Apple È in / Libreria / Java ... piuttosto che in / Sistema / Libreria / Java ... Eseguire / usr / libexec / java_home -v 1.7 contro -v 1.6 lo confermerà.


export JAVA_HOME = $ (/ usr / libexec / java_home) a ~ / .bash_profile
Oleksii Kyslytsyn

6

Ho provato la soluzione di serkan, trovando la posizione di Java 7 su OS X Mavericks. è residente "/Library/Java/JavaVirtualMachines/jdk1.7.0_51.jdk/" ma per renderlo il JDK predefinito ho dovuto impostare la variabile di sistema JAVA_HOME in .bash_profile nella directory home in "/Library/Java/JavaVirtualMachines/jdk1.7.0_51.jdk/Contents/Home/" modo che sia attiva e funzionante ora grazie all'idea di serkan


export JAVA_HOME = $ (/ usr / libexec / java_home) in ~ / .bash_profile.
Oleksii Kyslytsyn,

5

Per:

  • OS X: 10.11.6

  • Java: 8

Confermo la risposta di @Morrie.

   export JAVA_HOME=/Library/Internet\ Plug-Ins/JavaAppletPlugin.plugin/Contents/Home;

Ma se gestisci container, la tua vita sarà più facile


2
Penso che questo avrebbe dovuto essere un commento.
Thunderforge,

1
Non credo, perché esiste un valore aggiunto che è `export JAVA_HOME =`. ... E tu @Thunderforge
Abdennour TOUMI,

export JAVA_HOME = $ (/ usr / libexec / java_home) in ~ / .bash_profile.
Oleksii Kyslytsyn,

3

digitare il which javaterminale per mostrare dove è installato.


1
Sì, esporta JAVA_HOME = $ (/ usr / libexec / java_home) in ~ / .bash_profile.
Oleksii Kyslytsyn,

-1

Le Preferenze di Sistema, quindi il Pannello di controllo Java, quindi Java, quindi Visualizza, mostreranno la posizione esatta del JRE predefinito attualmente installato.


export JAVA_HOME = $ (/ usr / libexec / java_home) a ~ / .bash_profile
Oleksii Kyslytsyn
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.