PDA

View Full Version : Mac OS 10.8 Eclipse e Java SE 6


michelexeno
05-04-2013, 16:12
Salve, ho inizializzato il mio mac e installato Mountain Lion, l'ultimo JDK di Java dal sito Oracle ed Eclipse. Quando provo ad aprire Eclipse compare la seguente schermata: Per aprire "Eclipse", devi avere un runtime Java SE 6. Vuoi installarne uno adesso?
La stessa cosa succede con JDownloader. Considerando che nel pacchetto JDK c'è anche il JRE, non capisco come mai bisogno per forza installare il java fornito da Apple, quello Oracle non basta?

Grazie mille

s0nnyd3marco
08-04-2013, 17:51
Salve, ho inizializzato il mio mac e installato Mountain Lion, l'ultimo JDK di Java dal sito Oracle ed Eclipse. Quando provo ad aprire Eclipse compare la seguente schermata: Per aprire "Eclipse", devi avere un runtime Java SE 6. Vuoi installarne uno adesso?
La stessa cosa succede con JDownloader. Considerando che nel pacchetto JDK c'è anche il JRE, non capisco come mai bisogno per forza installare il java fornito da Apple, quello Oracle non basta?

Grazie mille

Se hai installato il JDK della Oracle, dovresti avere un icona di java in system preferences, nella sezione system:

http://i.stack.imgur.com/WIyqB.png


Per verificare che java sia installato prova da terminale i comandi:


java -version
javac -version


e posta l'output.

Il JDK di Apple oramai è obsoleto, quello di Oracle va benissimo. In alternativa OpenJDK.

michelexeno
08-04-2013, 18:43
Si si, ho l'ultima versione di java installata e il terminale mi da conferma che la versione di java in uso è l'ultima di oracle e anche nelle preferenze di sistema c'è l'icona

s0nnyd3marco
08-04-2013, 20:03
Per caso hai altre versione di Java installate precedentemente? Se lanci da system preferences l'icona di java, ti da qualche opzione?

PS: io ho installato openjdk da macport, quindi non ho la tua stessa configurazione.

Dai un occhio ai link in

ls -l /System/Library/Frameworks/JavaVM.framework/

michelexeno
09-04-2013, 18:05
Java di Oracle è installato, anche le opzioni nelle preferenze di sistema funzionano perfettamente. Questo l'output del comando che mi hai indicato
Last login: Tue Apr 9 18:58:50 on console
MacBook-Pro-di-Michele:~ Michele$ ls -l /System/Library/Frameworks/JavaVM.framework/
total 24
lrwxr-xr-x 1 root wheel 27 5 Apr 13:07 Frameworks -> Versions/Current/Frameworks
lrwxr-xr-x 1 root wheel 23 5 Apr 13:07 JavaVM -> Versions/Current/JavaVM
lrwxr-xr-x 1 root wheel 26 5 Apr 13:07 Resources -> Versions/Current/Resources
drwxr-xr-x 4 root wheel 136 5 Apr 13:07 Versions
MacBook-Pro-di-Michele:~ Michele$

s0nnyd3marco
09-04-2013, 22:53
Allora, su OSX l'installazione di java la puoi trovare nei seguenti path:

/System/Library/Java/JavaVirtualMachines
/Library/Java/JavaVirtualMachines
~/Library/Java/JavaVirtualMachines


C'é un comando di osx che ti permette di vedere quali sono le versioni di java installate:

/usr/libexec/java_home --verbose


Il mio output è questo:

Matching Java Virtual Machines (4):
1.7.0-b222-20111220, x86_64: "OpenJDK 7" /Library/Java/JavaVirtualMachines/1.7.0.jdk/Contents/Home
1.7.0-b222-20111220, i386: "OpenJDK 7" /Library/Java/JavaVirtualMachines/1.7.0.jdk/Contents/Home
1.6.0_43-b01-447, x86_64: "Java SE 6" /System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home
1.6.0_43-b01-447, i386: "Java SE 6" /System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home


Ci sono due versioni della virtual machine, 1.6 e 1.7.

Per impostare quale versione di java vuoi usare, fai:

export JAVA_HOME=`/usr/libexec/java_home -v 1.7`


ed eseguendo java -version ottengo:

openjdk version "1.7.0-b222"
OpenJDK Runtime Environment (build 1.7.0-b222-20111220)
OpenJDK 64-Bit Server VM (build 21.0-b17, mixed mode)


Se vuoi la 1.6 allora:

export JAVA_HOME=`/usr/libexec/java_home -v 1.6`


e java -version ti restituirà

java version "1.6.0_43"
Java(TM) SE Runtime Environment (build 1.6.0_43-b01-447-11M4203)
Java HotSpot(TM) 64-Bit Server VM (build 20.14-b01-447, mixed mode)


Per rendere permanente la versione di java che vuoi dovresti impostare nel file .bashrc la versione di java che vuoi, inserendo uno dei due comandi di cui sopra.


PS: quello che ti dicevo di controllare nelle preferenze di java è se la versione che vuoi usare è quella più in alto della lista (quella di default). Io ho una configurazione diferente dalla tua, perchè uso openjdk e imposto la versione di java che voglio tramite l'impostazione della variabile d'ambiente JAVA_HOME.

Fammi sapere se risolvi.

Ciao

michelexeno
10-04-2013, 17:44
Innanzitutto ti ringrazio per la pazienza che stai avendo nel risolvere il mio problema. L'output di /usr/libexec/java_home --verbose e java -version
Last login: Wed Apr 10 18:28:00 on ttys000
MacBook-Pro-di-Michele:~ Michele$ /usr/libexec/java_home --verbose
Matching Java Virtual Machines (1):
1.7.0_17, x86_64: "Java SE 7" /Library/Java/JavaVirtualMachines/jdk1.7.0_17.jdk/Contents/Home

/Library/Java/JavaVirtualMachines/jdk1.7.0_17.jdk/Contents/Home
MacBook-Pro-di-Michele:~ Michele$ java -version
java version "1.7.0_17"
Java(TM) SE Runtime Environment (build 1.7.0_17-b02)
Java HotSpot(TM) 64-Bit Server VM (build 23.7-b01, mixed mode)
MacBook-Pro-di-Michele:~ Michele$

Questo a conferma che la jdk installata è unica e attiva di default come anche si nota dalle preferenze di sistema. Ho controllato nelle cartelle che mi hai indicato e il jdk è unico.

Cercando sul web ho visto che molti altri hanno questo problema facendo un'installazione pulita di ML e installando solo il jdk di Oracle hanno lo stesso messaggio che chiede di scaricare Java SE 6.
Il trucchetto che circola sulla rete è questo:
sudo mkdir /System/Library/Java/JavaVirtualMachines
sudo ln -s /Library/Java/JavaVirtualMachines/jdk1.7.0_17.jdk /System/Library/Java/JavaVirtualMachines/1.6.0.jdk

Avrai visto da te che viene creato un alias alla jdk7. Non è una soluzione molto ortodossa ma così non ho problemi. Che ne pensi?

s0nnyd3marco
11-04-2013, 08:13
In linea di principio evito il piu' possibile di creare link nel sistema tra varie versioni (e vale sia per osx che per linux), in quanto puo' "potenzialmente" creare casini in caso di aggiornamenti.
Il meccanismo per selezionare la versione di java "in modo pulito", dovrebbe essere la variabile d'ambiente JAVA_HOME.

Quello che vorrei capire e' perche' OSX va in cerca della versione 1.6.0 (il link che hai creato) quando la /usr/libexec/java_home punta ad un altra versione del jdk.

michelexeno
12-04-2013, 17:00
Ho provato a impostare java_home come mi hai detto ma non è cambiato niente. Non vedo altra soluzione

s0nnyd3marco
13-04-2013, 19:30
Lascia cosi... anche se mi fa piuttosto strano :mbe:

michelexeno
13-04-2013, 19:48
Già, non dirlo a me..cmq questo è il sito dove ho trovato le info
http://apple.stackexchange.com/questions/58203/mountain-lion-with-java-7-only