繁体   English   中英

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

[英]Enable JDK 7 in Eclipse Indigo on Mountain Lion

我正在使用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 =>已安装的JRE:使用路径/Library/Java/JavaVirtualMachines/jdk1.7.0_13.jdk/Contents/Home添加JDK1.7.0
  • Java => Compiler =>已安装的JRE => Exucution Environment:将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 => Configuration显示它仍在使用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网站双重检查路径,文件中的正确位置,以及在两者之间添加换行符)
  • 将相同内容添加到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的提示,我能够在Eclipse Juno中使用Scala插件,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 Indigo中运行时没有依赖性问题。 编辑:刚刚发现,这个异常是由JDK7引起的,而不是使用的Eclipse版本。

我正在使用支持Juno的预览版本: http//scala-ide.org/download/milestone.html#scala_ide_21_milestone_3

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

第一次尝试:

  • 更新到最新的JDK(目前为1.7.0u15)
  • 再次从Github克隆代码
  • 安装Eclipse Indigo
    • 重新安装Eclipse解决了JDK6的问题,现在只需从JDK7开始,无需进一步配置
  • 安装Scala插件
  • 使用sbt eclipse创建一个新的Eclipse项目
  • 导入创建的项目

哎呀,不行! 我仍然得到这个例外:

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

...这很奇怪,因为Eclipse现在真正运行JDK7。 如果不深入挖掘,我就给了Eclipse Juno一个机会。

第二次尝试:

  • 做与上面相同的事情
  • 安装Eclipse Juno而不是Indigo
  • 是的,它的作品! :)

结论:

所以我不确定为什么,但Eclipse Indigo不知何故不喜欢getPlatformMXBean 它似乎不是JDK的问题,而是Eclipse本身。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM