2013-02-17 78 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