2013-02-17 10 views
13

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.

+0

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

risposta

1

Nel frattempo, sono riuscito a risolvere questi problemi.

Prima prova:

  • Update per il JDK più recente (1.7.0u15 al momento)
  • Clone il codice da GitHub nuovo
  • installare Eclipse Indigo
    • la reinstallazione di Eclipse ha risolto i problemi con JDK6, ora inizia con JDK7 senza ulteriori configurazioni
  • installare il plugin Scala
  • creare un nuovo progetto Eclipse utilizzando sbt eclipse
  • importare il progetto

Ops, non funziona creato! Ancora ottengo questa eccezione:

value getPlatformMXBean is not a member of object java.lang.management.ManagementFactory 

... che è strano perché Eclipse ora davvero piste con il JDK7. Senza scavare più a fondo, ho appena dato un colpo a Eclipse Juno.

Seconda Prova:

  • fare tutto lo stesso come sopra
  • installare Eclipse Juno invece di Indigo
  • Yay, funziona! :)

Conclusione:

quindi non sono sicuro perché, ma Eclipse Indigo in qualche modo non piace getPlatformMXBean. Non sembra essere un problema con il JDK ma con Eclipse stesso.

2

Sto usando la versione di anteprima che supporta Juno bene: http://scala-ide.org/download/milestone.html#scala_ide_21_milestone_3

+0

Grazie, l'ho provato, ma ora ricevo un'eccezione che non ho ricevuto prima e che la eseguo dalla riga di comando anziché Eclipse funziona perfettamente. Ancora indagando – str

+1

Qual è l'eccezione che stai ricevendo e come si presenta il tuo 'eclipse.ini'? – EECOLOR

+0

Si prega di consultare la mia modifica nella domanda. – str

Problemi correlati