首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在山狮上启用Eclipse中的JDK 7

在山狮上启用Eclipse中的JDK 7
EN

Stack Overflow用户
提问于 2013-02-17 18:34:37
回答 2查看 2.5K关注 0票数 13

我正在使用Eclipse (Indigo SR2)开发一个Scala项目。今天,我将我的机器升级到山狮,因为我们需要JDK 7的一些功能。安装JDK 7很好:

代码语言:javascript
复制
$ 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:使用路径/Library/Java/JavaVirtualMachines/jdk1.7.0_13.jdk/Contents/Home添加JDK1.7.0
  • Java =>编译器=>安装了JREs => Exucution环境:将JavaSE-1.7设置为JDK1.7.0
  • Java =>编译器:遵从级别: 1.7
  • Scala =>编译器: Target = jvm-1.7

然后我重新启动Eclipse并尝试运行一个脚本。但是,我总是会发现错误:

代码语言:javascript
复制
value getPlatformMXBean is not a member of object java.lang.management.ManagementFactory

该方法仅在Java1.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的提示,我能够在Eclipse中使用Scala插件,在那里JDK7运行得很好。然而,现在我遇到了一个似乎是依赖的问题。我得到的例外可以在这里看到:https://gist.github.com/anonymous/ac0f3a3655419e5149fa

奇怪的是,当我用一个简单的java -cp JARFILE com.AND-SO-ON.file从命令行运行它时,文件就会很好地启动。为了构建源代码和获取依赖关系,我们使用SBT。

我的Eclipse.ini看起来如下(除了Xmx之外的默认值):

代码语言:javascript
复制
-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。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-02-23 10:21:01

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

第一次尝试:

  • 更新到最新的JDK (目前为1.7.0u15)
  • 再次从Github克隆代码
  • 安装Eclipse
    • 重新安装Eclipse解决了使用JDK6的问题,现在它只是从JDK7开始,没有任何进一步的配置

  • 安装Scala插件
  • 使用sbt eclipse创建一个新的Eclipse项目
  • 导入创建的项目

哎呀,不管用!我仍然有这样的例外:

代码语言:javascript
复制
value getPlatformMXBean is not a member of object java.lang.management.ManagementFactory

..。这很奇怪,因为Eclipse现在确实与JDK7一起运行。没有深入挖掘,我只是给了Eclipse一次机会。

第二次尝试:

  • 做上面所有的事情
  • 安装Eclipse而不是Indigo
  • 耶,它起作用了!)

结论:

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

票数 1
EN

Stack Overflow用户

发布于 2013-02-17 19:54:57

我正在使用支持Juno的预览版本:3

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14924576

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档