在Mountain Indigo上的Eclipse Indigo中启用JDK 7
我正在使用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
所以我尝试了以下(如*上和其他网站也描述):
- 加
-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版本。
在此期间,我设法解决这些问题。
首先尝试:
- (目前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本身。
我看到你添加了另一个编辑。据我所知,stacktrace中的问题确实与Eclipse没有任何关系。如果您需要帮助解决您在堆栈跟踪中发现的错误,我建议您开始一个新问题。 – EECOLOR 2013-02-20 19:34:04