【问题标题】:Mac OS-X Eclipse with Google App Engine setup: JDK version error when launching Eclipse带有 Google App Engine 设置的 Mac OS-X Eclipse:启动 Eclipse 时出现 JDK 版本错误
【发布时间】:2014-08-04 11:27:42
【问题描述】:

在我的 Mac OS-X Mavericks 上,我安装了安装了 JRE 1.6 的 Eclipse Java Enterprise Ed Helios 版本。

我将我的 Eclipse 版本更新为 Eclipse Kepler Java Enterprise Edition (Eclipse Kepler v 4.3)

然后我安装了 Google App Engine 组件(基本上是从https://developers.google.com/eclipse/docs/install-eclipse-4.3 下载并安装 Google Pugin for Kepler ...)

当我启动新的 Eclipse Kepler 时,我收到以下错误(下面的屏幕截图),表明我的 JRE (v 1.6) 已过期,我需要 1.7.0+ 版本

于是我从http://www.oracle.com/technetwork/java/javase/downloads/index.html下载了最新的JDK v 1.8

我按照来自http://docs.oracle.com/javase/7/docs/webnotes/install/mac/mac-jdk.html的分步说明安装了它

我在 Eclipse 中设置 SDK 版本,方法是转到 Preferences->Java->Installed JREs(并导航到包含新 JRE 的文件夹)

但是,当我重新启动 Eclipse 时,我仍然收到相同的错误,即(JRE 需要为 1.7.0 或更高版本)

**** 任何想法我缺少什么设置或我需要设置什么? ****

这是我尝试过的运行日志和屏幕截图:

最新系统首选项 (java) 设置和 Eclipse java 首选项的屏幕截图:

这里是eclipse.ini的内容

-startup ../../../plugins/org.eclipse.equinox.launcher_1.3.0.v20130327-1440.jar
--launcher.library
../../../plugins/org.eclipse.equinox.launcher.cocoa.macosx_1.1.200.v20140116-2212
-product
org.eclipse.epp.package.jee.product
--launcher.defaultAction
openFile
-showsplash
org.eclipse.platform
--launcher.XXMaxPermSize
256m
--launcher.defaultAction
openFile
--launcher.appendVmargs
-vm /Library/Java/JavaVirtualMachines/jdk1.7.0_60.jdk/Contents/Home/jre/lib/server/libjvm.dylib
-vmargs
-Dosgi.requiredJavaVersion=1.6
-XstartOnFirstThread
-Dorg.eclipse.swt.internal.carbon.smallFonts
-XX:MaxPermSize=256m
-Xms40m
-Xmx512m
-Xdock:icon=../Resources/Eclipse.icns
-XstartOnFirstThread
-Dorg.eclipse.swt.internal.carbon.smallFonts

更新: 我编辑了我的 eclipse.ini 以确保 jvm 1.7 的 -vm 规范跨越两行,正如@manouti 所建议的那样

-vm
/Library/Java/JavaVirtualMachines/jdk1.7.0_60.jdk/Contents/Home/jre/lib/server/libjvm.dylib

现在,当我开始 Eclipse 时,会出现这个不同的错误。在线查看似乎我需要向 JVM 初始化文件添加一些功能....

我查看了以下博客 http://burrsutter.blogspot.com/2013/12/eclipse-does-not-contain.html 并根据那里发布的建议更新了我的 JVM 7 info.plist 文件的功能部分,如下所示:

<key>JVMCapabilities</key>
      <array>
            <string>CommandLine</string>
            <string>JNI</string>
            <string>BundleApp</string>
            <string>WebStart</string>
            <string>Applet</string>
      </array>

该博客还建议 eclipse.ini 中的 -vm 选项使用不同的值...

还可以在启动时将 java 版本设置为 1.7,方法是将以下行添加到 ~/.bash_profile

export JAVA_HOME=`/usr/libexec/java_home -v 1.7`

仍然收到上面的功能错误“不包含 JNI_CreateJavaVM 符号”

我尝试将 eclipse.ini 中的 -vm 行更改为 burrsutter 的博客 http://burrsutter.blogspot.com/2013/12/eclipse-does-not-contain.html 中推荐的行,即将 eclipse.ini 中的 -vm 设置为:

-vm
/Library/Java/JavaVirtualMachines/jdk1.7.0_60.jdk/Contents/Home/bin/java

有了这个我继续得到上面显示的功能错误......

也试过

-vm
/System/Library/Frameworks/JavaVM.framework/Versions/CurrentJDK/Home/bin/java

... 原来的错误又回来了,即“JRE 版本是 1.6.0 版本需要 1.7.0 或更高版本”

【问题讨论】:

    标签: java eclipse macos google-app-engine java-7


    【解决方案1】:

    此过程的最初动力来自@manouti(谢谢!),但我添加了新手在 Mac OSCX Mavericks 上将应用引擎与 Eclipse 集成所需的所有步骤。这是一步一步的解决方案:

    • 确保您的 Mac OSX Mavericks 上安装了 Java 1.7 版:

    http://www.oracle.com/technetwork/java/javase/downloads/index.html下载JDK

    下载和安装 JDK 1.7 的分步说明在这里:http://docs.oracle.com/javase/7/docs/webnotes/install/mac/mac-jdk.html

    在终端 vi ~/.bash_profile 中编辑并添加以下行: 导出 JAVA_HOME=/usr/libexec/java_home -v 1.7

    重新启动您的 Mac。

    • 接下来确保您拥有 Eclipse_kepler。

    在 mac 上检查版本。当前的 Mac Pro 有 64 位版本…… (在终端类型中:'uname -a' 如果你看到'RELEASE_X86_64 x86_64',这意味着你有64位版本)

    删除您拥有的任何 eclipse 版本。 - 从文件夹 ~/Library/Saved Application State、~/Library/Preferences 和 ~/Library/Caches 中删除名称中包含 org.eclipse 的所有内容,然后删除 eclipse 文件夹(确保将 Workspaces 文件夹复制到安全的地方在你这样做之前)

    更新 Eclipse 到版本 Eclipse EE Kepler for Mac 64 位通过下载从 http://www.eclipse.org/downloads/download.php?file=/technology/epp/downloads/release/kepler/SR2/eclipse-jee-kepler-SR2-macosx-cocoa-x86_64.tar.gz

    当您启动 Eclipse 时,您会注意到 Kepler 中的 Java 设置设置为默认 1.7

    (使用 eclipse 软件更新功能并输入 URL: http://dl.google.com/eclipse/plugin/4.3) 只需安装 Google Plugin for Eclipse。

    • 现在您已准备好开始学习将 XCode/iOS 与 Google 集成的步骤教程 应用引擎

    https://cloud.google.com/developers/articles/how-to-build-mobile-app-with-app-engine-backend-tutorial

    【讨论】:

      【解决方案2】:

      确保在您的 CLASSPATH 和 PATH 环境变量中设置了新的 JDK。 Eclipse 可能仍在使用旧的 JDK1.6。您可以致电java -version 来检查您机器上使用的默认版本。还要确保 Eclipse 安装目录中的 eclipse.ini 文件没有使用 JDK1.6 启动。您可以编辑 eclipse.ini 以便它使用 JDK1.8 启动:

      -vm
      /path/to/java1_8
      

      【讨论】:

      • 谢谢 - 当我执行 java -version 时,我得到 java 版本 "1.8.0_05" Java(TM) SE Runtime Environment (build 1.8.0_05-b13) 但是当我检查 eclipse.ini 时,我看到了。 .. -Dosgi.requiredJavaVersion=1.6 我可以尝试将其更改为 -Dosgi.requiredJavaVersion=1.8
      • 那也不起作用...我现在收到错误消息“版本 1.6.0_05 不适合此产品。需要 1.8 或更高版本”
      • 应该是……? "-vm /Library/Java/JavaVirtualMachines/jdk1.8.0_05.jdk/Contents/Home/jre/bin/java"
      • 试过了,它给了我截图中的错误
      • 您不应更改 -Dosgi.requiredJavaVersion 参数。此外,您可能会发现这篇文章很有用:rshankar.com/…。如果即使在 -vm 选项更改之后它也不起作用,那么也许您应该考虑删除旧的 JDK。
      猜你喜欢
      • 2015-10-12
      • 2011-01-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-01-07
      • 2012-06-22
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多