在美洲狮上的 Eclipse Indigo 中启用 JDK 7

2022-09-04 23:20:59

我正在与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 => 编译器 => 已安装的 JRE:添加带有路径的 JDK1.7.0/Library/Java/JavaVirtualMachines/jdk1.7.0_13.jdk/Contents/Home
  • Java => 编译器 => 已安装的 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似乎没有找到它,尽管命令单击它显示了类中的函数。关于Eclipse =>配置显示它仍然使用JDK 6(),但我需要JDK 7。ManagementFactoryjava.runtime.version=1.6.0_37-b06-434-11M3909

因此,我尝试了以下方法(如StackOverflow和其他站点所述):

  • 添加到eclipse.ini文件(根据eclipse网站仔细检查了路径,在文件中的正确位置,并在两者之间添加了换行符)-vm /Library/Java/JavaVirtualMachines/jdk1.7.0_13.jdk/Contents/Home/bin/java
  • 将相同的内容添加到 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开始。奇怪的是,我可以显式地将JRE更改为JDK7,它将以这种方式运行它。但我不想为每个可运行的文件更改它。Run=>Run Configurations

还有进一步的建议吗?


多亏了EECOLOR的提示,我能够在Eclipse Juno中使用Scala插件,JDK7运行良好。但是,现在我遇到了似乎是依赖性问题的问题。我得到的例外可以在这里看到:https://gist.github.com/anonymous/ac0f3a3655419e5149fa

扼杀,当我从命令行运行它时,该文件刚刚开始正常,使用简单的.为了构建源代码和获取依赖项,我们使用 SBT。java -cp JARFILE com.AND-SO-ON.file

我的 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版本。


答案 1

答案 2

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

第一次尝试:

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

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

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

...这很奇怪,因为Eclipse现在真的与JDK7一起运行。在没有深入挖掘的情况下,我只是给了Eclipse Juno一个机会。

第二次尝试:

  • 执行与上述相同的操作
  • 安装 Eclipse Juno 而不是 Indigo
  • 是的,它有效!:)

结论:

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


推荐