【问题标题】:Eclipse on Mac 10.8 - Installed 1.7.0 JRE / JDK, but Eclipse won't launchMac 10.8 上的 Eclipse - 安装了 1.7.0 JRE / JDK,但 Eclipse 不会启动
【发布时间】:2012-12-15 20:20:40
【问题描述】:
  • 从 Oracle 及其安装程序包安装 Java SE 1.7.0u10

  • 已下载并解压的 Eclipse Juno (4.2.1)

  • 双击 Eclipse 紫色图标并获得带有错误消息的 OS X 警报提示:

要打开“Eclipse”,您需要 Java SE 6 运行时。你是否想要 现在安装一个?

  • (在终端中)which java - /usr/bin/java

  • ls -l /usr/bin/java - /usr/bin/java -> /System/Library/Frameworks/JavaVM.framework/Versions/Current/Commands/java

  • (在 Finder 中)双击 eclipse 别名(解压下载时包含)- 终端启动,/Applications/Eclipse/Eclipse.app/Contents/MacOS/eclipse ; exit ; 和 Exclipse 启动时没有 OS X 警报提示。

我尝试修改 Eclipse 应用程序包 plist 以将 -vm 键指向 /System/Library/Frameworks/JavaVM.frameworks/Versions/Current/Commands/java,但我觉得我可能不应该这样做这样做。`

我想知道如何通过双击应用程序包来启动 Eclipse。让我烦恼的是一件小事...... :o)

【问题讨论】:

  • 它说你需要 Java 6。Java 7 并不意味着 Java 6 加上新特性
  • @AlexYan 我不确定我是否理解。我的系统上没有安装 Java 6,但是当从命令行 /Applications/Eclipse/Eclipse.app/Contents/MacOS/eclipse 执行时 Eclipse 将运行。这表明我不需要同时安装 Java 6 和 Java 7。你能澄清一下吗?
  • 我的意思是 Java 6 和 7 是不同的。拥有 JRE7 并不一定意味着所有用 Java 编写的低于版本 7 的 Java 程序都可以运行。去年我的一个学校项目在 JRE7 中的运行方式与在 JRE6 中的运行方式不同。而且 Eclipse 可能会严格检查这种事情,我不确定
  • 哦,我也发现了这个:bugs.eclipse.org/bugs/show_bug.cgi?id=374791。 Eclipse 中似乎存在导致您遇到的问题的错误。该错误报告中包含一个补丁,可能会解决您的问题,但您必须自己应用它。我不知道你会怎么做呢
  • 确保您使用的是 64 位 Eclipse。没有运气在 1.7 jvm 上运行 32 位的任何选项。

标签: java eclipse macos


【解决方案1】:

希望您使用的是 64 位的 Java SE 1.7.0,因此建议如下。

  1. 转到 Eclipse->首选项...->Java->已安装的 JRE
  2. 点击添加...
  3. 选择标准虚拟机
  4. /Library/Java/JavaVirtualMachines/1.7.0.jdk/Contents/Home 粘贴到JRE 主页
  5. 将 JRE 名称更改为有用的名称,例如 Java SE 7
  6. 点击完成
  7. 选中新创建的 JRE 旁边的复选框。

您需要重新启动。

【讨论】:

  • 没有变化。我仍然收到来自 OS X 的相同消息。此外,该 JRE 位置已显示在已安装的 JRE 窗口中(仅列为 (MacOS X Default)
【解决方案2】:

我在Ask Different找到了答案

这是一个丑陋的 hack,但效果很好。

【讨论】:

  • @Hisham 的 answer 比丑陋的黑客要好。
  • 我不同意这是一种启动 Eclipse 的技术上优越的方式,但它没有回答我原来的问题:I'd like to know how to get Eclipse to launch by just double clicking on the Application package.
  • 您愿意将 Eclipse 添加到您的扩展坞吗?如果是这样,您只需单击一下@Hisham 的answer 即可。只需从命令行启动一次 Eclipse,然后将其拖到至少一个空格上即可停靠。从那时起,只需单击停靠的 Eclipse 项目。 (您可能必须允许执行未签名的程序,尤其是当您运行的 Mavericks 不是默认设置时)。
  • 我认为@jkwuc89 给出的解决方案更干净(而且没有副作用)stackoverflow.com/a/10374886/778891
【解决方案3】:

在设置新的 Mac 并尝试运行仅安装 Java SE 7(作为 JDK 7u17 的一部分)的 eclipse 4.2.2 时,我收到了完全相同的消息。

为了能够成功启动 Eclipse,我必须先让 OSX 下载并安装 Apple 的 Java SE 6 运行时,然后再安装最新的 JDK。

安装JDK后,命令java -version正确显示:

java version "1.7.0_17"
Java(TM) SE Runtime Environment (build 1.7.0_17-b02)
Java HotSpot(TM) 64-Bit Server VM (build 23.7-b01, mixed mode)

试图以相反的方式解决问题并没有奏效——即按照消息中的建议在安装 Java SE 6 之前先安装 JDK 7u17。

【讨论】:

    【解决方案4】:

    在本页发帖:Mountain Lion with Java 7 only

    要欺骗 OS X 接受 Java 7 而不是建议安装 Java 6,一个简单的符号链接就足够了:

    sudo mkdir /System/Library/Java/JavaVirtualMachines

    sudo ln -s /Library/Java/JavaVirtualMachines/1.7.0.jdk /System/Library/Java/JavaVirtualMachines/1.6.0.jdk

    大多数 Java 程序都可以在不需要安装 Java 6 的情况下运行这个小技巧。OS X 的 Java Preferences(可能还有其他一些)不会,因为它似乎在启动时明确检查 JVM 的版本。

    上面的脚本可以解决我的问题。

    【讨论】:

    • 抱歉之前的评论和投反对票,请忽略。
    【解决方案5】:

    如果您只想安装 Java 6 JDK(没有 Java 7 JDK/JRE,只有没有 Java 6 JRE),请安装 Apple OSX Java DMG(在撰写本文时,它是http://adcdownload.apple.com/Developer_Tools/java_for_os_x_2013003_developer_package/java_for_os_x_2013003_dp__11m4406.dmg)。

    您仍然无法启动 Eclipse。在 /System/Library/Java 下创建一个目录 JavaVirtualMachines。然后在 /Library/Java/JavaVirtualMachines 处创建 java 版本文件夹的别名,并将别名重命名为 1.6.0.jdk 并将该别名复制到 /System /库/Java/JavaVirtualMachines/

    完成后,您将在 /System/Library/Java/JavaVirtualMachines/1.6.0.jdk 获得一个别名,该别名指向 */Library/Java/JavaVirtualMachines/1.6 的 Java 安装目录.0_XX-XXX-XXX.jdk*

    【讨论】:

      【解决方案6】:

      你能想象吗?即使您已经安装了 jdk 1.7,也必须安装 JDK 1.6 才能正常运行 Eclipse,并正确设置 JAVA_HOME。

      要解决你的问题,你只需要从http://support.apple.com/kb/DL1572?viewlocale=en_US下载jdk1.6,并安装它,之后你就可以运行eclipse了,你可以将JAVA_HOME设置为JDK1.7,你就可以了能够从eclipse“首选项”中找到JDK1.7。

      【讨论】:

        【解决方案7】:

        我安装了 JDK 7,并通过从终端而不是 finder 运行 eclipse 解决了 eclipse Kepler 的这个问题。

        ./eclipse
        

        只是想分享一下。

        更新 1

        为了完整起见,如果您也想从 Finder 运行它,您可以将 ./eclipse 命令包装到 .command 文件中并从 Finder 运行它(这样您就不必打开终端)

        以下几行应该可以完成这项工作(不要忘记将“your-full-eclipse-path”替换为您机器上的 eclipse 路径)

        #!/bin/sh
        /your-full-eclipse-path/eclipse
        

        之后,给刚刚创建的eclipse.command文件赋予执行权限

        chmod +x eclipse.command
        

        【讨论】:

        • +1 这是最好的答案。比添加符号链接或安装 Java 6 要好得多。它可以正常工作。
        • 比其他解决方案容易得多
        • 对我不起作用。当我双击我创建的 shell 时,我在终端中得到以下信息:找不到任何与架构“x86_64”匹配的 JVM。不存在 Java 运行时,请尝试 --request 安装。不存在 Java 运行时,请求安装。我已确认我已安装 JRE 7。
        • 确保java安装正确;即当您打开终端并运行“java”时会发生什么?
        【解决方案8】:
        1. 从 Sun 安装最新的 JDK,它安装到 /Library/Java/JavaVirtualMachines/,例如/Library/Java/JavaVirtualMachines/jdk1.7.0_40.jdk

        2. sudo mkdir /System/Library/Java/JavaVirtualMachines

        3. sudo ln -s /Library/Java/JavaVirtualMachines/jdk1.7.0_40.jdk/ /System/Library/Java/JavaVirtualMachines/1.6.0.jdk

        ========= 这个技巧曾经在 Mountain Lion 上奏效,但不知为何在 Maverick 10.9 上奏效 ============

        在 Maverick 上再试一次,它不再起作用了。我还尝试更改 eclipse app plist 和 eclipse.ini(通过添加 -vm 或 ),也不起作用。

        有人提出这是由使用 Apple 1.6 appbundler 而不是 Oracle java7 appbundler 编写的 Eclipse 二进制文件引起的:Application is using Java 6 from Apple instead of Java 7 from Oracle on Mac OS X?

        现在,请从命令行输入 eclipse,它在 JAVA_HOME 设置为 Java 7 时可以正常工作(/usr/libexec/java_home 命令会告诉你)

        【讨论】:

        • 这似乎相当危险......版本之间的链接可能会产生意想不到的后果。其背后的逻辑是什么?
        【解决方案9】:

        如何让 Eclipse 在 OS X 10.9 Mavericks 上运行

        在 Mavericks 升级后尝试启动各种 Eclipse 版本会弹出一个对话框,其中包含以下消息:

        要打开“Eclipse.app”,您需要 Java SE 6 运行时。您要现在安装吗?

        事实证明,Java 7 在 OS X 10.9 中默认禁用。
        这很容易验证如下:

        $ java --version
        No Java runtime present, requesting install.
        

        解决方案是从 Apple 支持安装支持的最新 Java 版本:Java for OS X 2013-005 (http://support.apple.com/kb/DL1572)
        截至 2013 年 10 月 15 日,这将是 Java SE 6 1.6.0_65。
        发布日期:2013 年 10 月 15 日
        文件大小:63.98 MB

        安装后,Eclipse 将按预期从 Dock、Finder 或终端运行,无需任何技巧、黑客或变通方法。

        【讨论】:

          【解决方案10】:

          我想用 Java 7 运行 Eclipse。因为我有几个没有它就无法工作的插件。对我来说,这两种解决方案都不适用于 10.9,但我找到了一种解决方法。主要思想是使用 java -jar launcher.jar 启动 eclipse 并提供几个神奇的属性,然后它就会启动。这家伙在 cmets 中提供了适合我的命令行脚本:

          https://bugs.eclipse.org/bugs/show_bug.cgi?id=411361#c25

          【讨论】:

            【解决方案11】:

            最好的答案是修复 Java 7 安装,如下所示: https://stackoverflow.com/a/19594116
            做起来很简单,我已经确认它适用于小牛队。通过此修复,您可以像往常一样从启动板启动您的应用程序。如果升级 JDK,则必须将修复程序重新应用于新安装。

            【讨论】:

              【解决方案12】:

              不管怎样,Eclipse 团队似乎已经解决了这个问题,将他们基于 dlopen() 的方法替换为基于 CFBundleCreate() 的方法:https://bugs.eclipse.org/bugs/show_bug.cgi?id=411361

              如果有人在启动 Java 的代码中遇到同样的问题并且不想诉诸 Apple 专用 API,我发现了一个更简单的解决方法:在 dlopen()ing $JRE_HOME/lib/server/libjvm 之前。 dylib,确保打开 dlopen() $JRE_HOME/lib/jli/libjli.dylib。然后它不会要求安装 Java 6。

              【讨论】:

              • 感谢您的提示。 libjli.dylib 也有 JNI* 函数,似乎我可以使用指向这些函数的指针,而根本不需要打开 libjvm.dylib。必须对此进行测试。
              • 是的,只能使用 libjli.dylib。 (起初以为没有,但那是因为代码中的错误)
              【解决方案13】:

              几天前我遇到了完全相同的问题,今天我解决了。刚刚安装了这个http://support.apple.com/kb/dl1572

              之后,当我打开 eclipse 时,OSX 安装了一些 java 更新,并通过 Eclipse.app 打开 eclipse 开始工作。

              希望它也适用于你。

              【讨论】:

                【解决方案14】:

                所有这些技巧都不适用于 mac Mavericks, 但是找到了一个简单有效的解决方案here 它对我很有帮助。

                注意:此解决方案的一个缺点是当您使用“java -version”命令检查您的 java 版本时,它会读取 Java 1.6

                【讨论】:

                  【解决方案15】:

                  我发现了同样的问题(Mac OS X 10.9.2、Java 1.7.0_53b13、Eclipse Kepler)。解决方法很简单:

                  1. 在 Finder 中查找可执行文件(CMD+单击 Dock 中的 Eclipse 图标)
                  2. 从 Dock 中删除图标
                  3. CTRL+单击 Finder 中的可执行文件
                  4. ALT+Open(允许执行未签名的应用程序)
                  5. Eclipse 正常打开,没有任何问题
                  6. 将程序重新拖到 Dock 上

                  【讨论】:

                    【解决方案16】:

                    我遇到了这个问题,发现我的 Mac 上没有安装 JDK。一旦我这样做了,Eclipse 就会正常启动。

                    【讨论】:

                      【解决方案17】:

                      打开/Library/Java/JavaVirtualMachines/jdkXXXXX.jdk/Contents/Info.plist

                      设置(<string>BundledApp</string>很有用!):

                      <key>JVMCapabilities</key>
                      <array>
                        <string>JNI</string>
                        <string>BundledApp</string>
                        <string>WebStart</string>
                        <string>Applets</string>
                        <string>CommandLine</string>
                      </array>
                      

                      【讨论】:

                        【解决方案18】:

                        我有同样的问题。

                        首先; JDK(Java 开发工具包)和 JRE(Java 运行时环境)是不同的东西。被人搞糊涂了

                        为了安装 eclipse 你应该安装最新的 JDK。所以

                        1. 访问 http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html

                        2. 为你的 mac 下载合适的版本

                        3. 您现在可以查看您的版本;它不会是 1.6 了

                        4. 再次尝试安装eclipse,看看效果如何。

                        祝你好运!..

                        【讨论】:

                          猜你喜欢
                          • 2014-10-21
                          • 1970-01-01
                          • 2012-12-04
                          • 2011-08-14
                          • 1970-01-01
                          • 1970-01-01
                          • 1970-01-01
                          • 1970-01-01
                          • 1970-01-01
                          相关资源
                          最近更新 更多