Come installare un JDK specifico su Mac OS X?


197

Voglio installare un JDK specifico (l'ultimo per esempio). Per questo, sono andato alla homepage di download di JDK: http://java.sun.com/javase/downloads/index.jsp . Ho cercato una versione per Mac, ma sono un po 'sorpreso di vedere solo le versioni scaricabili per Linux, Windows e Solaris ...

Ecco il messaggio per Mac:

"Apple Computer fornisce la propria versione di Java. Utilizza la funzione di aggiornamento software (disponibile nel menu Apple) per verificare di disporre della versione più aggiornata di Java per il tuo Mac."

OK MA ... quando aggiorno Java con Mac ho un JRE e non un JDK ...

Non capisco perché non esiste una versione JDK facilmente scaricabile / installabile (come un vaso per decomprimerlo?) Per Mac ...


70
Famosa domanda ... dovresti accettare una risposta. ;)
gary,

Fink fornisce una soluzione per questo.
Daniel,

10
Nota che Java 7 è ora fornito da Oracle - la maggior parte delle risposte e la questio si riferiscono a uno stato precedente
mmmmmm

Risposte:


44

In un commento sotto la risposta di @ Thilo, @mobibob ha chiesto come impostare JAVA_HOME nel tuo .bash_profile su un Mac. Risposta:

export JAVA_HOME=`/usr/libexec/java_home` 

Ciò assegnerà dinamicamente a JAVA_HOME la posizione del primo JDK elencato nella scheda "Generale" dell'utilità "Preferenze Java".

Consulta le domande e risposte tecniche di Apple 1170: https://developer.apple.com/library/content/qa/qa1170/_index.html

MODIFICARE:

Se preferisci le parentesi ai backtick per la sostituzione dei comandi, funziona anche:

export JAVA_HOME=$(/usr/libexec/java_home)

20

Come dice il messaggio, devi andare su Apple, non su Sun, per Java sul Mac. Per quanto ne so, Apple JDK 6 è installato per impostazione predefinita su Mac OS X 10.6 (Snow Leopard). Forse devi installare gli strumenti per sviluppatori dal tuo DVD di installazione di Mac OS X (gli strumenti di sviluppo sono un'installazione opzionale dal DVD del sistema operativo).

Vedi: http://developer.apple.com/java/

NOTA Questa risposta del 16 ottobre 2009 è obsoleta; puoi ottenere JDK per Mac OS X dalla normale pagina di download JDK sul sito Web di Oracle ora.



10

Ho acquistato un MacBook Pro ieri ( Mac OS X v10.8 (Mountain Lion)) e non esiste un JDK installato per impostazione predefinita ...

Oltre a javac, ho anche scoperto che non c'erano pacchetti come SVN installati. Si scopre che puoi ottenere tutto dalla pagina degli sviluppatori Apple (dovrai registrarti con il tuo AppleID). SVN fa parte del pacchetto "Strumenti da riga di comando".

Inserisci qui la descrizione dell'immagine

Questo è ciò che accade su un nuovo MacBook:

Inserisci qui la descrizione dell'immagine

Inserisci qui la descrizione dell'immagine

Spero che questo possa aiutare altri neofiti come me;)


5
+1. La situazione è cambiata un po 'con Mountain Lion. Si noti inoltre che mentre Apple offre l'installazione Java opzionale, è solo la versione precedente di Java 6. Le versioni correnti di Java per OS X sono ora distribuite da Oracle stesso.
Thilo,


4

La spiegazione è che JDK è un po 'specifico e non contiene la libreria tools.jar . Per il mio sviluppo, ho bisogno di questa libreria e JDK di Mac non lo fornisce:

(Cfr. Http://developer.apple.com/mac/library/documentation/Java/Conceptual/Java14Development/02-JavaDevTools/JavaDevTools.html )

tools.jar non esiste. Le classi che si trovano solitamente qui sono invece incluse in classes.jar. Gli script che si basano sull'esistenza di tools.jar devono essere riscritti di conseguenza.

Fa schifo!


1
Ahhhhhhh !!! Come hai scoperto, tools.jarè già incluso nel runtime per Mac OS X. Quindi cercare tools.jarnon è l'approccio giusto su Mac per sapere se si tratta di un JDK o JRE :)
Pascal Thivent,

Grazie per la tua risposta, hai ragione. Il mio bisogno era di ottenere la libreria tools.jar per un progetto specifico e per me era un approccio per riconoscere un jdk;)
ajeanson,

4

Il modo più semplice è usare Homebrew . Installa Homebrew e quindi:

brew tap caskroom/versions
brew cask install java7

Puoi elencare tutte le versioni disponibili usando il seguente comando: brew cask search java


3

Compilare con -source 1.5 -target 1.5 (in un ambiente JDK 6) onorerà solo gli elementi linguistici che erano nella versione 1.5 e precedenti. Grande. Ma non ci sono stati cambiamenti di lingua in 6 comunque. Il problema con questo approccio (su Mac con 1.6) è che l'uso delle classi che sono arrivate DOPO 1.5 verrà comunque compilato perché esistono in rt.jar. Quindi si potrebbe eseguire in un env 1.5 e ottenere una classe non trovata eccezione senza alcun preavviso durante la compilazione. L'ho scoperto nel modo più difficile con javax.swing.event.RowSorterEvent / Listener. Entrambi sono entrati in "Since 1.6" ma non sono stati catturati con -source 1.5



3

A partire da Mac OS X v10.6 (Snow Leopard), è possibile eseguire Java 6 in modalità 32 bit su Mac dotati di processore Intel a 32 o 64 bit .

Se non è possibile eseguire l'aggiornamento a Snow Leopard, Soy Latte è una versione precompilata di Java 6 per Intel a 32 bit.



1

Penso che questa altra domanda Stack Overflow potrebbe aiutare:

Come ottenere JDK 1.5 su Mac OS X

Sostanzialmente afferma che se è necessario compilare o eseguire un'applicazione Java con una versione precedente di JDK (ad esempio 1.4 o 1.5), è possibile farlo utilizzando 1.6 perché è retrocompatibile. Per farlo, dovrai aggiungere il parametro -source 1.5e / o -target 1.5nelle opzioni javac o nel tuo IDE.


1

JDK è il Java Development Kit (utilizzato per sviluppare software Java).

JRE è Java Runtime Environment (utilizzato per eseguire qualsiasi file .jar 'Java software').

Il JDK contiene un JRE al suo interno.

Su Windows quando aggiorni Java, aggiorna automaticamente JRE.

Su Mac non hai un JRE separato, ce l'hai, ma all'interno del JDK, quindi quando aggiorni Java aggiornerà il tuo JRE che è all'interno del tuo JDK; non installa un JDK per te. Devi ottenerlo da qualche altra parte.


1
Penso che intendevi JDK invece di IDK. Ho provato a modificare ma Stack Overflow ha detto che le modifiche devono essere più lunghe di 6 caratteri. Basta menzionarlo per evitare confusione.
webworm

1

Controlla questo fantastico strumento sdkman per gestire il tuo jdk e altri strumenti relativi a jdk con grande facilità!

per esempio

$sdk list java
$sdk install java <VERSION>

1

Poiché la maggior parte delle risposte non sono aggiornate, ecco cosa funziona alla fine del 2018, supponendo che

  1. Vuoi installare la versione GPL di OpenJDK. [0]
  2. Non si desidera installare Homebrew

In tal caso, prendi la versione desiderata da una delle tante edizioni OpenJDK disponibili e liberamente utilizzabili, ad esempio:

Alcuni di questi includono programmi di installazione, ma in caso contrario è possibile effettuare le seguenti operazioni. Supponendo qui la versione 11.0.1 per Mac. Nella tua shell preferita, esegui:

tar -xzf openjdk-11.0.1_osx-x64_bin.tar.gz
sudo mv jdk-11.0.1.jdk /Library/Java/JavaVirtualMachines
# Fix owner and group
sudo chown -R root:wheel /Library/Java/JavaVirtualMachines/jdk-11.0.1.jdk
# (Optional) Check if the new JDK can be found
/usr/libexec/java_home
=> /Library/Java/JavaVirtualMachines/jdk-11.0.1.jdk/Contents/Home

[0] Notare che il marchio Oracle JDK ha restrizioni di licenza significative che ne consentono l'utilizzo essenzialmente solo per i test, ovvero non per la produzione. Se non hai un accordo di supporto con Oracle, mi sembra rischioso usare il loro JDK, soprattutto perché le differenze con OpenJDK sono minime .

Modifica: aggiunte più scelte


1
Ti suggerisco di segnalare il download da AdoptOpenJDK.net e quindi seguire le tue istruzioni, evitando così i problemi legali e di supporto delle versioni di Oracle.
Basil Bourque,

0

Di norma non è possibile installare su Mac altre versioni di Java diverse da quelle fornite da Apple tramite Aggiornamento software. Se hai bisogno di Java 6 devi avere un computer Intel a 64 bit. Dovresti sempre avere Java 5 e 1.4 e forse 1.3 installati se hai almeno OS X 10.4.

Se hai MOLTO grasso al gomito ed è disposto a lavorare con il software beta, puoi installare OpenJDK su OS X, ma non credo che tu voglia andarci.


Lo so, ecco perché ho aggiunto quel commento. Forse avrei dovuto scrivere un commento un po 'più lungo per andare con il link :-)
Neeme Praks
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.