Come si usa JDK 7 su Mac OSX?


107

Vorrei utilizzare l'API WatchService come indicato in questo collegamento: http://download.oracle.com/javase/tutorial/essential/io/notification.html

Dopo aver letto in giro, ho scoperto che WatchService fa parte della classe NIO che è prevista per JDK 7. Quindi, è in versione beta. Va bene.

http://jdk7.java.net/download.html contiene il JDK che ho scaricato ed estratto. Ho un sacco di cartelle. Non so cosa fare con loro.

Poi, ho letto ancora un po 'e ho scoperto che un bel gruppo di persone ha creato JDK 7 come binario in modo che qualcuno come me possa installarlo facilmente. Si chiama Open JDK: http://code.google.com/p/openjdk-osx-build/

Quindi, ho scaricato il file .dmg e l'ho installato. Quindi apro "Java Preference" e vedo che OpenJDK7 è disponibile.

Quindi, ora sento di poter iniziare a provare l'API WatchService. Dal tutorial nel primo collegamento, l'autore ha fornito un file .java per provarlo prima e assicurarsi che sia in esecuzione. Ecco il collegamento al file: http://download.oracle.com/javase/tutorial/essential/io/examples/WatchDir.java

Quindi, avvio Eclipse (in realtà uso STS) e creo un nuovo progetto Java e scelgo JaveSE-1.7 in "usa un ambiente di esecuzione JRE:". Nella cartella src, ho copiato e incollato il file WatchDir.java.

E vedo ancora tonnellate di linee rosse ondulate. Tutti i "import.java.nio. *" Sono tutti rossi e non posso eseguirlo come app Java.

Cosa devo fare?


Puoi eseguirlo e compilarlo sulla console?
dmeister

Vuoi dire: $ javac WatchDir.java e poi $ Java WatchDir? Lo proverò. Grazie! Anche se mi piacerebbe che fosse disponibile in Eclipse IDE.
okysabeni

1
Da oggi c'è una versione ufficiale di Oracle - Java SE 7u4
mmmmmm

Assicurati di utilizzare Eclipse a 64 bit. Non ho avuto fortuna a eseguire uno a 32 bit su 1.7 jvm con qualsiasi opzione.
tuxSlayer

Aggiornamento: Java 7 è ora alla fine del ciclo di vita . Per passare alle versioni con supporto a lungo termine (LTS) di Java, vedere: Come installare Java 8 su Mac e ottenere Java 11 per macOS? .
Basil Bourque il

Risposte:


61

Oracle ha rilasciato JDK 7 per OS X .


Aggiornerò la risposta con le ultime informazioni. Per favore fatemi sapere se questa non è la risposta giusta. Grazie.
okysabeni

@Yko - guarda BasilBourque per le informazioni più complete (o il mio per la prima versione 4 di Oracle JDK7)
mmmmmm

12
Si noti che per fare in modo che le applicazioni utilizzino Java 1.7 di Oracle a favore di Java 1.6 di Apple, ho dovuto eseguire /Library/Java/JavaVirtualMachines/1.7.0.jdke trascinare "Java SE 7" all'inizio dell'elenco nella scheda "Generale". Questo farà anche javacriferimento alla versione Java 1.7 quando si esegue il terminale.
sschuberth

2
Il JDK7 di Oracle non funziona su Snow Leopard. Dice che è supportato solo da Lion.
Sanghyun Lee il

@Sangdol - Sì, l'implementazione Java di Oracle funziona solo su Lion e versioni successive. Come notato nella mia risposta a questa domanda.
Basil Bourque

88

È così che ho ottenuto 1.7 per lavorare con Eclipse. Spero possa essere d'aiuto.

  1. Ho scaricato l'ultimo JDK OpenJDK 1.7 universale (32/64 bit) dal ramo di Mac OS / X da http://www.oracle.com/technetwork/java/javase/downloads/jdk7-downloads-1880260.html
  2. ha copiato jdk in / Library / Java / JavaVirtualMachines / accanto a quello predefinito 1.6.0
  3. In Eclipse> Preferenze> Java> JRE installati si aggiunge uno nuovo, di tipo MacOS X VM, e si imposta la home come /Library/Java/JavaVirtualMachines/1.7.0.jdk/Contents/Home e il nome Java SE 7 (OpenJDK)
  4. Fare clic su Fine
  5. Imposta il JRE aggiunto come predefinito

dovrebbe essere così :)


grazie il mio elcipse completamente bloccato .. quindi ho provato a usare sdk 1.7 ha funzionato perfettamente! : =)
cV2

1
Quel progetto (openjdk-osx-build) è stato chiuso e non offre più download.
aroth

il passaggio 2 può essere solo: eseguire il download di jdk-7u40-macosx-x64.dmg e aggiungerà automaticamente il file al percorso
Michal

Quando si aggiunge un JRE installato a Eclipse, Eclipse può anche "cercare" i JRE installati. È così che ho trovato la mia installazione esistente di 1.7 JDK.
jvriesem

Nota che il programma di installazione di Oracle jdk 1.7 metterà la VM in / Library / Java / JavaVirtualMachines / per te (marzo 2014)
Chris Thorne

55

Java 9, 10, 11

Anni fa, Apple si è unita a OpenJDK progetto , trasferendo il codice JVM specifico per macOS precedentemente proprietario come open source gratuito. Apple ha cessato la distribuzione del proprio marchio JVM / JDK, affidandosi alle versioni a marchio Oracle per includere una versione per macOS.

Oracle ha recentemente annunciato l'intenzione di portare la loro versione JVM a marchio Oracle in modo da garantire la parità con il progetto OpenJDK, praticamente con la stessa base di codice. L'azienda ha anche donato i suoi strumenti precedentemente commerciali, Flight Recorder & Mission Control , al progetto OpenJDK. Questo fa parte del passaggio a un nuovo piano di "rilascio rapido" per il controllo delle versioni pianificato in modo prevedibile di Java e OpenJDK. In particolare, i periodi per gli aggiornamenti pubblici gratuiti sono ora ridotti. Vedi questo annuncio del 2017-09 e questo messaggio di Mark Reinhold .

Come risultato di tutto ciò, gli utenti macOS di Java hanno una scelta di fornitori per un'implementazione Java. A questo punto, almeno tre sorgenti sono basate su OpenJDK per macOS:

  • Versioni Oracle di JDK e JRE, con supporto a pagamento opzionale.
  • Rilascio di Azul Systems :
    • Linea Zulu di JVM gratuite con supporto a pagamento opzionale.
    • Linea Zing di JVM commerciali con caratteristiche speciali come un garbage collector alternativo.
  • Codice sorgente OpenJDK , compilazione e installazione personalizzate (forse non pratico per la maggior parte di noi).

Nel frattempo, IBM ha donato il codice per una JVM alla Eclipse Foundation, ora ospitata nel progetto OpenJ9 . Mi chiedo se potrebbero supportare anche una versione di macOS, anche se è troppo presto per dirlo.

Personalmente, attualmente sto utilizzando la versione Zulu di Java 10.0.1 di Azul su macOS High Sierra con IntelliJ 2018.2 per produrre app Web supportate da Java con Vaadin .

Installazione / Rimozione

Sia Oracle che Azul forniscono programmi di installazione estremamente facili da usare per installare JVM / JDK sul tuo Mac. Verificare l'installazione utilizzando Terminal.app (o equivalente) per digitare ed eseguire:

java -version

Troverai le installazioni Java in questa cartella al livello principale del tuo disco (non nella tua cartella home):

/ Library / Java / JavaVirtualMachines

Ogni versione di ogni fornitore si trova lì, in una cartella nidificata etichettata. È possibile eliminare qualsiasi installazione semplicemente eliminando la cartella nidificata per quella versione e fornendo la password di sistema quando richiesto.

Java 8

È possibile scaricare il Java Development Kit (JDK) per Java 8 per le versioni supportate di Mac OS X:

  • Leone di montagna (10.8.3+)
  • Mavericks (10,9)
  • Yosemite (10.10)
  • El Capitan (10.11)

Ogni versione di JVM che installi può essere trovata qui:

/Library/Java/JavaVirtualMachines

Per ulteriori istruzioni e domande frequenti, vedere questa Guida Oracle .

Java 7

Per ogni versione di Java 7 dall'aggiornamento 4, una versione per Mac è pronta insieme alle altre piattaforme. Funziona su Mac con hardware a 64 bit su Lion (10.7.3+), Mountain Lion (10.8.3+) e Mavericks (10.9.x).

Oracle ha annunciato il rilascio ufficiale di JDK per Java SE 7 Update 4 su Mac OS X (Lion), a partire dal 26/04/2012. Non c'è più bisogno dei trucchi discussi in questa pagina.

L'installazione è semplice seguendo queste istruzioni :

  1. Scarica dalla solita posizione sul sito Web Oracle.
  2. Montare il DMG.
  3. Esegui il programma di installazione.

Questa versione presenta alcune limitazioni, in particolare la mancanza di supporto per Java Web Start e Java Plugin per i browser web. Tale supporto è previsto entro la fine dell'anno.

Dopo l'installazione, leggi il file Leggimi di JDK per Mac. Ancora più importante, se desideri che Java 7 sia l'impostazione predefinita, trascinalo all'inizio dell'elenco nell'app Preferenze Java che si trova nella cartella Utilità.

Mac OS X supporta facilmente più JVM contemporaneamente. Ciascuno si trova ora qui:

/Library/Java/JavaVirtualMachines

Congratulazioni ai team Apple e Oracle per il loro risultato. Questo geek si emoziona vedendo Mac OS X elencato come " Configurazione di sistema certificata ".

Suggerimento: per avviare Eclipse su un Mac con installato solo Java 7, aprire il file alias denominato eclipse anziché il file denominato Eclipse.app .

Java 6

Apple continua a fornire un'implementazione aggiornata di Java 6 per tutte le versioni di Mac OS X fino a Mountain Lion.

Se fai qualcosa che richiede Java, come digitare "java -version" in Terminal.app, appare una finestra di dialogo che offre di installare Java per te. Se accetti, l'installazione avviene automaticamente in modo simile ad altri "Aggiornamenti software" di Apple.

Troverai Java installato in questa posizione, diverso da Java 7 e 8:

/System/Library/Java/JavaVirtualMachines

Java 6 ha raggiunto la fine del ciclo di vita con Oracle a partire dal 2013-02 (a meno che non si disponga di un accordo di supporto commerciale con Oracle). Quindi dovresti passare a Java 7 o 8.

Test della nuova versione

In Terminal.app, digita java -versionper verificare quale versione è l'impostazione predefinita corrente.

Eliminazione di vecchie versioni

Dopo aver installato una nuova versione, potresti voler visitare la cartella sopra descritta per eliminare le vecchie versioni. Spostare la cartella nel Cestino e fornire la password di sistema per completare lo spostamento.


A proposito, Apple fornisce una mailing list per i problemi tecnici degli sviluppatori relativi a Java su OS X.


Grazie, per me ha funzionato benissimo. È necessario modificarlo anche nelle preferenze.

@ Tony: Sì, la modifica delle preferenze è menzionata nel 4 ° paragrafo.
Basil Bourque

Non funziona Eseguo il programma di installazione e segnala "Successo", ma sembra che nulla venga effettivamente installato. /System/Library/Java/JavaVirtualMachinescontiene solo Java 6 JDK.
aroth

4
@aroth - (a) Guarda dentro /Library/Java/JavaVirtualMachines(non /System). (b) Hai letto i documenti di installazione di Oracle ReadMe, e impostati Preferencescome descritto nella mia risposta sopra?
Basil Bourque

1
Con Java 7 r21, vedo /Library/Java/JavaVirtualMachines/jdk1.7.0_21.jdk/. Il pannello di controllo Java è ora accessibile tramite Preferenze di sistema (OSX 10.8.3)
Sofi Software LLC

17

Un modo semplice per installare Java 7 su un Mac è utilizzare Homebrew , grazie al plugin Homebrew Cask (che ora è installato di default).

Esegui questo comando per installare Java 7:

brew cask install caskroom/versions/java7

"Error: No available cask for caskroom / versions / java7"
jrochkind

@jrochkind Forse il tuo non caskroom/versionsè aggiornato? È sicuramente qui: github.com/caskroom/homebrew-versions/blob/master/Casks/…
Andrew

@jrochkind Prova a eseguire brew tap caskroom/versionsprima di eseguire il comando di installazione
Andrew

@jrochkind Se non funziona, consulta la documentazione di cask o invia un problema: github.com/caskroom/homebrew-cask
Andrew

13

Prendi botte

brew tap caskroom/cask

Installa java7:

brew tap caskroom/versions
brew cask install java7

(Ho avuto difficoltà a trovare il link per il download di java7 sul sito Web di Oracle, poiché "consigliano" java8)

EDIT gennaio 2018 (come sottolineato da Ankur ):

Usa zulu7 cask. Zulu è una build certificata di OpenJDK prodotta da Azul Systems che dovrebbe essere disponibile per molto tempo (offrono ancora build JDK6).

brew cask install caskroom/versions/zulu7

La risposta accettata per questa domanda è obsoleta. Questo sembra essere il modo migliore per installare Java 7 in questi giorni.
Tim Dean

questo barile è stato rimosso (vedi: github.com/caskroom/homebrew-versions/pull/3914 ). l'alternativa suggerita è usare zulu7.
Ankur

9

So che alcuni potrebbero volermi schiaffeggiare per aver riaperto il vecchio post, ma se lo ritieni opportuno, spero solo che questo possa aiutare qualcun altro a provare a impostare JDK 7 su Mac OS (usando IntelliJ).

Quello che ho fatto per farlo funzionare sulla mia macchina è stato:

  • seguito le istruzioni su Oracle JDK7 Mac OS X Port per l'installazione generale
  • in IntelliJ apri / crea un nuovo progetto in modo da poter aggiungere un nuovo SDK (File> Struttura del progetto)
  • selezionare Impostazioni piattaforma> SDK, premere il segno "+" (più) per aggiungere un nuovo SDK
  • selezionare JSDK e accedere a / Library / Java / JavaVirtualMachines / JDK 1.7.0 Developer Preview.jdk / Contents / Home. Non farlo confondere con / Users / YOUR_USERNAME / Library / Java / . Questo collegherà 4 JAR dalla directory "lib" (dt.jar, jconsole.jar, sa-jdi.jar e tools.jar)
  • dovrai anche aggiungere i JAR da / Library / Java / JavaVirtualMachines / JDK 1.7.0 Developer Preview.jdk / Contents / Home / jre / lib (charsets.jar, jce.jar, JObjC.jar, jsse.jar, management-agent .jar, resources.jar e rt.jar)

6

È possibile che sia ancora necessario aggiungere il JDK in Eclipse (STS). Solo perché il JDK è sul sistema non significa che Eclipse sappia dove trovarlo.

Vai a Preferenze> Java> JRE installati

Se non c'è una voce per 1.7 JDK, aggiungila. Dovrai indirizzare Eclipse a dove hai installato il tuo 1.7 JDK.

Se Eclipse non riesce a trovare un JRE compatibile con 1.7, immagino che utilizzi solo il tuo JRE predefinito e che probabilmente punta ancora a Java 1.6, il che causerebbe le tue linee ondulate rosse.


Ottima scelta! Ma ho bisogno di ulteriori indicazioni. Vado in JRE installati -> Aggiungi e punto a ... / jdk1.7.0 / jre e ho trovato un mucchio di file JAR. Faccio clic su Fine. Felicemente cerca di compilare ma ora dice ... / jdk1.7.0 / jre / bin / java: impossibile eseguire il file binario. Cosa significa?
okysabeni

Non sono veramente sicuro. Potresti provare a puntare eclipse nella directory jdk di base invece che nella directory jre. Penso che sia come l'ho fatto di solito su Windows, anche se non ho mai disattivato il JDK predefinito sul mio Mac. Se ciò non funziona, potresti provare a installare una distribuzione diversa di JDK 7: ce n'erano alcune disponibili sul sito openjdk-osx-build, forse ne hai presa una che non è compatibile con il tuo sistema?
Jon Quarfoth

L'ho provato. Mi dà l'errore di "Target non è una radice JDK. La libreria di sistema non è stata trovata"
okysabeni

6

dopo aver installato 1.7jdk da Oracle, ho cambiato i miei script bash per aggiungere:

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

e poi in esecuzione ha java -versionmostrato la versione giusta.





1

Le istruzioni di peter_budo hanno funzionato perfettamente. Ho dovuto aggiungere i vasi in / Library / Java / JavaVirtualMachines / JDK 1.7.0 Developer Preview.jdk / Contents / Home / jre / lib / alle librerie del mio progetto IntelliJ. Ora funziona perfettamente. Nota che non avevo bisogno del mio IDE stesso per funzionare sotto 1.7; piuttosto, avevo solo bisogno di essere in grado di compilare ed eseguire contro 1.7. Molto probabilmente continuerò a utilizzare JRE di Apple per eseguire l'IDE poiché è probabilmente più stabile rispetto alle routine grafiche (Swing, AWT). Come l'OP, ero davvero entusiasta di testare la nuova API NIO2. Sembra buono finora. Grazie, Peter.


1

Ciò che ha funzionato per me su Lion è stata l'installazione di JDK7_u17 da Oracle, quindi la modifica di ~ / .bash_profile per includere: export JAVA_HOME = / Library / Java / JavaVirtualMachines / jdk1.7.0_13.jdk / Contents / Home


0

Ho aggiornato a Yosemite e Android Studio non puliva i miei progetti né li eseguivo su un dispositivo virtuale o reale a causa del seguente errore:

Failed to complete Gradle execution.Cause:Supplied javaHome is not a valid folder. You supplied: /System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home

Dopo alcune ricerche e risoluzione dei problemi, ho scoperto che il file JDK a cui si puntava "/System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home" non era presente; tutto "JavaVirtualMachines / 1.6.0.jdk / Contents / Home" mancava da "/ System / Library / Java". Quindi, ho copiato "JavaVirtualMachines / 1.6.0.jdk / Contents / Home" da "/ Library / Java /" a "/ System / Library / Java /" e cha ching! Sono tornato in affari.


0

Ora, usa il comando

Aggiornamento 2020: 04

Per installare Java7 con homebrew eseguire:

brew tap homebrew/cask-versions
brew cask install java7

Spero che questo aiuto.

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.