2013-02-17 13 views
13

Pracuję nad projektem Scala z Eclipse (Indigo SR2). Dziś zaktualizowałem moją maszynę do Mountain Lion, ponieważ potrzebujemy trochę funkcjonalność JDK 7. Montaż JDK 7 działało w porządku:Włącz JDK 7 w Eclipse Indigo na 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) 

W Eclipse Zmieniłem następujące ustawienia:

  • Java => Compiler => zainstalowane JRE: Dodawanie JDK1.7.0 ze ścieżką /Library/Java/JavaVirtualMachines/jdk1.7.0_13.jdk/Contents/Home
  • Java => => kompilatora zainstalowane JRE => Exucution Środowisko: Set JavaSE-1,7 do JDK1.7.0
  • Java => Compiler: Poziom Zgodność: 1.7
  • Scala => Compiler: Cel = JVM-1,7

Potem wznowiona Eclipse i próbowała uruchomić skrypt. Ja jednak zawsze pojawia się błąd:

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

Sposób ten jest dostępny tylko jako Java 1.7 i Eclipse nie wydają się go znaleźć chociaż komenda kliknięcie na nim ujawnia funkcję w klasie ManagementFactory. O Eclipse => Konfiguracja pokazuje, że nadal używa JDK 6 (java.runtime.version=1.6.0_37-b06-434-11M3909), ale muszę JDK 7.

Tak próbowałem następujące (jak opisano także na StackOverflow i innych miejsc):

  • dodatku -vm /Library/Java/JavaVirtualMachines/jdk1.7.0_13.jdk/Contents/Home/bin/java do pliku eclipse.ini (dwukrotnie sprawdzane ścieżce właściwego położenia w pliku według eclipse website, a także dodaje się nowej linii pomiędzy)
  • Taką samą do info.plist
  • $ /Applications/eclipse/Eclipse.app/Contents/MacOS/eclipse -vm /Library/Java/JavaVirtualMachines/jdk1.7.0_13.jdk/Contents/Home/
  • Utwórz dowiązanie symboliczne od 1,6 do 1,7

Ale bez powodzenia, Eclipse wciąż zaczyna się od JDK-6. Dziwne, że mogę jednoznacznie zmienić JRE w Run=>Run Configurations na JDK7 i uruchomi to w ten sposób. Ale nie chciałbym tego zmieniać dla każdego uruchamianego pliku.

Jakieś dalsze sugestie?


Dzięki wskazówce od EECOLOR, byłem w stanie korzystać z wtyczki Scala w Eclipse Juno, gdzie JDK7 działa dobrze. Jednak teraz wpadłem na coś, co wydaje się być problemem zależności. Wyjątek, jaki dostaję, można zobaczyć tutaj: https://gist.github.com/anonymous/ac0f3a3655419e5149fa

Co dziwne, plik zaczyna się poprawnie po uruchomieniu go z wiersza poleceń z prostym java -cp JARFILE com.AND-SO-ON.file. Do budowania źródeł i uzyskiwania zależności używamy SBT.

My Eclipse.ini wygląda następująco (domyślnie wyjątkiem 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 

tego samego projektu (tj naprawdę ten sam projekt, a nie tylko ten sam kod) przebiega bez problemów z zależnościami w Eclipse Indygo.Edycja: Dowiedziałem się, że ten wyjątek jest spowodowany przez JDK7, a nie wersję Eclipse.

+0

Widzę, że dodałeś kolejną edycję. O ile mogę powiedzieć, problem w stosie rzeczywiście nie ma nic wspólnego z Eclipse. Jeśli potrzebujesz pomocy w rozwiązaniu problemu znalezionego w stosie, polecam rozpocząć nowe pytanie. – EECOLOR

Odpowiedz

1

w międzyczasie udało mi się rozwiązać te problemy.

najpierw spróbować:

  • Aktualizacja do najnowszej JDK (1.7.0u15 w tej chwili)
  • Clone kod z Github ponownie
  • Instalacja Eclipse Indigo
    • Ponowna instalacja Eclipse rozwiązała problemy z JDK6, teraz zaczyna się od JDK7 bez dalszej konfiguracji
  • zainstalować wtyczkę Scala
  • tworzenia nowego projektu Eclipse przy użyciu sbt eclipse
  • zaimportować utworzony projekt

Ups, nie działa! Wciąż otrzymuję ten wyjątek:

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

... co jest dziwne, ponieważ Eclipse teraz naprawdę biegnie z JDK7. Nie kopiąc głębiej, właśnie dałem Eclipse Juno strzał.

drugie Spróbuj:

  • Czy wszystkie takie same jak powyżej
  • Instalacja Eclipse Juno zamiast Indigo
  • Yay, to działa! :)

Wniosek:

Więc nie jestem pewien dlaczego, ale Eclipse Indigo jakoś nie lubi getPlatformMXBean. To nie wydaje się być problem z JDK, ale samo Eclipse.

Powiązane problemy