2013-02-17 45 views
13

我正在使用Eclipse(Indigo SR2)開發Scala項目。今天,我在我的機器更新到山獅,因爲我們需要JDK 7安裝JDK 7的一些功能工作得很好:在Mountain Indigo上的Eclipse Indigo中啓用JDK 7

$ 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) 

在Eclipse中我改變了以下設置:

  • 的Java =>編譯器=>已安裝的JRE:添加JDK1.7.0與路徑/Library/Java/JavaVirtualMachines/jdk1.7.0_13.jdk/Contents/Home
  • 的Java =>編譯器=>已安裝的JRE => Exucution環境:設置的JavaSE-1.7至JDK1.7.0
  • 的Java =>編譯器:合規水平:1.7
  • 的Scala =>編譯器:目標= JVM-1.7

然後我重新啓動Eclipse和試圖運行的腳本。不過,我總是得到錯誤:

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

該方法只適用與Java 1.7和Eclipse似乎並沒有找到它,雖然它的命令,單擊顯示在類ManagementFactory功能。關於Eclipse =>配置表明,它仍然在使用JDK 6(java.runtime.version=1.6.0_37-b06-434-11M3909),但我需要JDK 7

所以我嘗試了以下(如StackOverflow上和其他網站也描述):

  • -vm /Library/Java/JavaVirtualMachines/jdk1.7.0_13.jdk/Contents/Home/bin/java到eclipse.ini文件(雙重檢查的路徑,在該文件中的正確位置,根據該eclipse website,並且還增加在之間的新行)
  • 同一添加到的Info.plist
  • $ /Applications/eclipse/Eclipse.app/Contents/MacOS/eclipse -vm /Library/Java/JavaVirtualMachines/jdk1.7.0_13.jdk/Contents/Home/
  • 創建一個從1.6到1.7的符號鏈接

但是沒有運氣,Eclipse始終只用JDK-6開始。奇怪的是,我可以明確地將Run=>Run Configurations中的JRE更改爲JDK7,並且它將以此方式運行。但是我不想爲每個可運行文件改變它。

還有什麼建議嗎?


感謝來自EECOLOR提示,我能夠使用的Scala插件在Eclipse的Juno,在JDK7跑就好了。但是,現在我遇到了似乎是依賴性問題。我得到的例外可以在這裏看到:https://gist.github.com/anonymous/ac0f3a3655419e5149fa

勉強,當我通過簡單的java -cp JARFILE com.AND-SO-ON.file從命令行運行它時,文件開始很好。爲了構建源代碼並獲得依賴關係,我們使用SBT。

我的eclipse.ini如下所示(除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 

同樣的項目(即真的同一個項目,而不僅僅是相同的代碼)運行,而無需在Eclipse依賴關係問題靛青。編輯:剛發現,這個異常是由JDK7造成的,而不是使用的Eclipse版本。

+0

我看到你添加了另一個編輯。據我所知,stacktrace中的問題確實與Eclipse沒有任何關係。如果您需要幫助解決您在堆棧跟蹤中發現的錯誤,我建議您開始一個新問題。 – EECOLOR 2013-02-20 19:34:04

回答

1

在此期間,我設法解決這些問題。

首先嚐試:

  • (目前1.7.0u15)更新到最新的JDK
  • 克隆從GitHub代碼再次
  • 安裝Eclipse 靛藍
    • 重新安裝Eclipse解決了JDK6的問題,現在只需從JDK7開始,無需進一步配置
  • 安裝插件斯卡拉
  • 創建使用sbt eclipse
  • 進口創建的項目

哎呀,不工作一個新的Eclipse項目!我仍然得到此異常:

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

...這很奇怪,因爲現在Eclipse 真的與JDK7運行。沒有深入挖掘,我只是給了Eclipse Juno一個鏡頭。

第二次嘗試:

  • 做如上
  • 安裝Eclipse 朱諾而不是靛藍
  • 耶全部相同,它的作品! :)

結論:

所以我不知道爲什麼,但是Eclipse靛藍不知何故不喜歡getPlatformMXBean。它似乎不是JDK的問題,而是Eclipse本身。

2

我使用的是支持的Juno就好了預覽版:http://scala-ide.org/download/milestone.html#scala_ide_21_milestone_3

+0

謝謝,我試過了,但現在我得到了一個我沒有得到的異常,並從命令行運行它而不是Eclipse工作得很好。仍在調查。 – str 2013-02-18 13:38:38

+1

你得到的異常是什麼,你的'eclipse.ini'是什麼樣的? – EECOLOR 2013-02-19 22:47:48

+0

請參閱我的編輯問題。 – str 2013-02-20 08:44:40