Sto lavorando a un progetto Scala con Eclipse (Indigo SR2). Oggi ho aggiornato la mia macchina a Mountain Lion perché abbiamo bisogno di alcune funzionalità di JDK 7. Installazione JDK 7 ha funzionato bene:Abilita JDK 7 in Eclipse Indigo on Mountain Lion
$ java -version
java version "1.7.0_13"
Java(TM) SE Runtime Environment (build 1.7.0_13-b20)
Java HotSpot(TM) 64-Bit Server VM (build 23.7-b01, mixed mode)
In Eclipse ho cambiato le seguenti impostazioni:
- Java => Compiler => JRE installate: Aggiunta JDK1.7.0 con il percorso
/Library/Java/JavaVirtualMachines/jdk1.7.0_13.jdk/Contents/Home
- Java => => compilatore JRE installata => Exucution Ambiente: Set JavaSE-1,7 a
JDK1.7.0
- Java => Compiler: Livello di conformità: 1.7
- Scala => Compiler: Obiettivo = jvm-1,7
Poi ho riavviato Eclipse e ha tentato di eseguire uno script. Tuttavia, ho sempre arrivare l'errore:
value getPlatformMXBean is not a member of object java.lang.management.ManagementFactory
metodo Said è disponibile solo come di Java 1.7 ed Eclipse non sembra trovare, anche se il comando clic su di esso rivela la funzione nella classe ManagementFactory
. A proposito di Eclipse => Configurazione dimostra che è ancora utilizzando JDK 6 (java.runtime.version=1.6.0_37-b06-434-11M3909
), ma ho bisogno di JDK 7.
Così ho provato quanto segue (come descritto anche su StackOverflow e altri siti):
- add
-vm /Library/Java/JavaVirtualMachines/jdk1.7.0_13.jdk/Contents/Home/bin/java
al file eclipse.ini (controllato due volte il percorso, la posizione corretta nel file in base alla eclipse website, ed anche ha aggiunto la nuova riga in mezzo) - aggiungere lo stesso alla Info.plist
$ /Applications/eclipse/Eclipse.app/Contents/MacOS/eclipse -vm /Library/Java/JavaVirtualMachines/jdk1.7.0_13.jdk/Contents/Home/
- Creare un collegamento simbolico da 1.6 a 1.7
Ma nessuna fortuna, Eclipse continua a partire con solo JDK-6. Ciò che è strano è che posso modificare esplicitamente il JRE in Run=>Run Configurations
su JDK7 e lo eseguirà in questo modo. Ma non vorrei cambiarlo per ogni singolo file eseguibile.
Ulteriori suggerimenti?
Grazie al suggerimento da EECOLOR, sono stato in grado di utilizzare il plugin Scala in Eclipse Juno, dove il JDK7 funziona bene. Tuttavia, ora mi imbatto in quello che sembra essere un problema di dipendenza. L'eccezione che ottengo può essere vista qui: https://gist.github.com/anonymous/ac0f3a3655419e5149fa
Stranamente, il file inizia appena bene quando lo eseguo dalla riga di comando con un semplice java -cp JARFILE com.AND-SO-ON.file
. Per costruire le fonti e ottenere le dipendenze, usiamo SBT.
mio eclipse.ini appare come segue (di default ad eccezione del Xmx):
-startup
../../../plugins/org.eclipse.equinox.launcher_1.3.0.v20120522-1813.jar
--launcher.library
../../../plugins/org.eclipse.equinox.launcher.cocoa.macosx.x86_64_1.1.200.v20120522-1813
-product
org.eclipse.epp.package.java.product
--launcher.defaultAction
openFile
-showsplash
org.eclipse.platform
--launcher.XXMaxPermSize
256m
--launcher.defaultAction
openFile
-vmargs
-Dosgi.requiredJavaVersion=1.5
-Dhelp.lucene.tokenizer=standard
-XstartOnFirstThread
-Dorg.eclipse.swt.internal.carbon.smallFonts
-XX:MaxPermSize=256m
-Xms40m
-Xmx1060m
-Xdock:icon=../Resources/Eclipse.icns
-XstartOnFirstThread
-Dorg.eclipse.swt.internal.carbon.smallFonts
Lo stesso progetto (cioè davvero lo stesso progetto, non solo lo stesso codice) funziona senza problemi con le dipendenze in Eclipse Indaco.Modifica: Appena scoperto, questa eccezione è causata da JDK7 e non dalla versione di Eclipse utilizzata.
Vedo che hai aggiunto un'altra modifica. Per quanto posso dire, il problema nello stacktrace non ha davvero nulla a che fare con Eclipse. Se hai bisogno di aiuto per risolvere l'errore che hai trovato nello stacktrack, ti consiglio di iniziare una nuova domanda. – EECOLOR