Java 在Mountain Lion上的Eclipse Indigo中启用JDK 7

Java 在Mountain Lion上的Eclipse Indigo中启用JDK 7,java,eclipse,scala,java-7,Java,Eclipse,Scala,Java 7,我正在使用Eclipse(Indigo SR2)进行Scala项目。今天我将我的机器更新为Mountain Lion,因为我们需要JDK 7的一些功能。安装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) 在Ecl

我正在使用Eclipse(Indigo SR2)进行Scala项目。今天我将我的机器更新为Mountain Lion,因为我们需要JDK 7的一些功能。安装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=>Compiler=>Installed JRE:使用路径添加JDK1.7.0
    /Library/Java/JavaVirtualMachines/JDK1.7.0\u 13.jdk/Contents/Home
  • Java=>Compiler=>Installed JREs=>Excution环境:将JavaSE-1.7设置为
    JDK1.7.0
  • Java=>编译器:符合性级别:1.7
  • Scala=>Compiler:Target=jvm-1.7
然后我重新启动Eclipse并尝试运行脚本。但是,我总是得到错误:

value getPlatformMXBean is not a member of object java.lang.management.ManagementFactory
上述方法仅在Java 1.7中可用,Eclipse似乎找不到它,尽管命令单击它会显示类
ManagementFactory
中的函数。About 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文件中(仔细检查路径,根据
  • 将其添加到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=>runconfigurations
中的JRE更改为JDK7,它将以这种方式运行。但我不想对每一个可运行的文件都改变这一点

还有什么建议吗


多亏了EECOLOR的提示,我才能够在EclipseJuno中使用Scala插件,JDK7运行得很好。然而,现在我遇到了一个似乎是依赖性的问题。我得到的例外情况可以在这里看到:

更糟糕的是,当我使用一个简单的
java-cpjarfile.com.AND-ON.file
从命令行运行该文件时,它的启动状态良好。为了构建源代码和获取依赖关系,我们使用SBT

我的Eclipse.ini如下所示(除Xmx之外的默认值):


在EclipseIndigo中,相同的项目(即真正相同的项目,而不仅仅是相同的代码)运行时没有依赖性问题。编辑:刚刚发现,这个异常是由JDK7引起的,而不是使用的Eclipse版本。

我使用的是支持Juno的预览版本,很好:

同时,我设法解决了这些问题

第一次尝试:

  • 更新到最新的JDK(目前为1.7.0u15)
  • 再次从Github克隆代码
  • 安装EclipseIndigo
    • 重新安装Eclipse解决了JDK6的问题,现在它只从JDK7开始,没有任何进一步的配置
  • 安装Scala插件
  • 使用sbt Eclipse创建一个新的Eclipse项目
  • 导入创建的项目
哎呀,不行!我仍然得到这个例外:

value getPlatformMXBean is not a member of object java.lang.management.ManagementFactory
。。。这很奇怪,因为Eclipse现在确实使用JDK7运行。没有深入挖掘,我只是给了朱诺一个机会

第二次尝试:

  • 照上面的方法做
  • 安装EclipseJuno而不是Indigo
  • 是的,它起作用了!:)
结论:


所以我不知道为什么,但EclipseIndigo不知何故不喜欢
getPlatformMXBean
。这似乎不是JDK的问题,而是Eclipse本身的问题。

谢谢,我试过了,但现在我得到了一个以前没有得到的异常,从命令行而不是Eclipse运行它就可以了。仍在调查中。您得到的异常是什么?您的
eclipse.ini
是什么样子的?我看到您添加了另一个编辑。据我所知,stacktrace中的问题确实与Eclipse无关。如果您需要帮助解决stacktrace中发现的错误,我建议您开始一个新问题。
value getPlatformMXBean is not a member of object java.lang.management.ManagementFactory