【问题标题】:Not able to run Eclipse on macOS Big Sur无法在 macOS Big Sur 上运行 Eclipse
【发布时间】:2020-10-20 04:14:55
【问题描述】:

我无法在 macOS Big Sur 开发人员测试版上运行 eclipse 我收到一条错误消息,指出“无法创建 java 虚拟机”。有什么办法可以解决这个错误

我正在运行的 java 版本:

【问题讨论】:

  • 你安装了JVM吗?哪个版本的 Eclipse,/usr/libexec/java_home 返回什么?
  • 它返回 jdk 8 并且我正在使用最新的 eclipse 一个可用的
  • 我也有 jre 1.8
  • “最新的 Eclipse 可用”不如版本号可靠。你能从终端自己运行java 命令吗?
  • “不能”是什么意思?你能分享确切的错误信息吗?

标签: eclipse macos


【解决方案1】:

我也有同样的问题。我通过打开 /Applications/Eclipse.app/Contents/Info.plist 解决它并添加:

<string>-vm</string><string>/Library/Java/JavaVirtualMachines/jdk1.8.0_201.jdk/Contents/Home/bin/java</string>

里面

<key>Eclipse</key>
        <array>
            ADD HERE!
        </array>

当然“/Library/Java/JavaVirtualMachines/jdk1.8.0_201.jdk/Contents/Home/bin/java”值必须根据你的JDK版本替换为实际路径正在使用。

【讨论】:

  • &lt;key&gt;Eclipse 下的&lt;array&gt; 条目中是否在标准文件中有对此的评论?更多关于放置它的确切位置的详细信息会很有用。
  • 是的。你应该用你自己的 JAVA_HOME 替换
  • 我的是 /Library/Java/JavaVirtualMachines/jdk1.8.0_92.jdk/Contents/Home/bin/java 试过了,不行。是的,我把它放在了 Eclipse 键的数组中。
  • 我的是“jdk1.8.0_171.jdk”。所以我添加了以下行 -vm/Library/Java/JavaVirtualMachines/jdk1.8.0_171.jdk/Contents/Home/bin/java。有效。谢谢。
【解决方案2】:

TL;DR

使用它来导出 JAVA_HOME 变量:

export JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk1.8.0_231.jdk/Contents/Home

加长版

此答案适用于 BigSur v11.0.1 Beta。我探索的是,如果您配置了类似这样的 .bash_profile JAVA_HOME 导出

export JAVA_HOME=$(/usr/libexec/java_home)

然后它试图导入这个,出于某种原因

/Library/Internet Plug-Ins/JavaAppletPlugin.plugin/Contents/Home

而不是

/Library/Java/JavaVirtualMachines/**/Contents/Home

为了快速修复,我像这样配置了我的 JAVA_HOME

export JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk1.8.0_231.jdk/Contents/Home

如果您同时在多个 JVM 之间切换,那么您可能会发现这个 .bashrc/.zshrc 配置很方便

    export JAVA_8_HOME="jdk1.8.0_231.jdk"
    export JAVA_11_HOME="openjdk-11.0.2.jdk"
    export JAVA_13_HOME="jdk-13.0.1.jdk"
    
        
    alias java8='export JAVA_HOME="/Library/Java/JavaVirtualMachines/$JAVA_8_HOME/Contents/Home"'
    alias java11='export JAVA_HOME="/Library/Java/JavaVirtualMachines/$JAVA_11_HOME/Contents/Home"'
    alias java13='export JAVA_HOME="/Library/Java/JavaVirtualMachines/$JAVA_13_HOME/Contents/Home"'
    
    # default to Java 8
    java8

【讨论】:

  • /usr/libexec/java_home 没有像以前那样指向正确的 JDK 是否是一个错误?
  • 这应该是公认的答案,只是一个简短的提示:您应该通过运行 java -version 并相应地更新导出路径来检查您安装的 java 版本。就我而言,我将jdk1.8.0_231.jdk 切换为jdk1.8.0_202.jdk
  • 我认为这不能解决 Eclipse / STS 的问题。这适用于所有命令和在 shell 中运行的命令行。
【解决方案3】:

编辑 Info.plist 以设置 -vm 值。

  1. 安装最新的Eclipse版本,我用的是2020-06版本
  2. 右键单击 Eclipse.app
  3. 显示包装内容
  4. 使用文本编辑器打开 Info.plist
  5. 键下的 下添加 -vm/Library/Java/JavaVirtualMachines/jdk1.8.0_191.jdk/Contents/Home/bin/java 。注意 - 根据您拥有的版本编辑 Java 的路径。您可以通过运行 /usr/libexec/java_home -V 查看列表

【讨论】:

  • 它帮助解决了这个问题。步骤很详细,谢谢。
  • 这是正确答案。特别是对我来说,我必须添加 &lt;string&gt;-vm&lt;/string&gt;&lt;string&gt;/Library/Java/JavaVirtualMachines/jdk1.8.0_172.jdk/Contents/Home/bin/java&lt;/string&gt;*.plist 文件中甚至还有一个示例
【解决方案4】:

为了解决这个问题,我删除了 openJDK 虚拟机并重新安装了它

  1. 删除openJDK文件夹

    /库/Java/JavaVirtualMachines

  2. here重新安装openJDK

  3. 打开应用程序并右键单击spring套件>显示包内容

  4. 编辑文件 Contents/info.plist。添加这个

<string>-vm</string><string>/Library/Java/JavaVirtualMachines/adoptopenjdk-14.jdk/Contents/Home/bin/java</string>

这应该在 eclipse 键内的数组标签内

【讨论】:

  • 完美。节省了我的时间。
【解决方案5】:

我使用 Homebrew 解决了这个问题

brew cask install eclipse-java

【讨论】:

  • 它有帮助!谢谢
【解决方案6】:

当我运行 echo $JAVA_HOME 时发现同样的事情已经被替换,

对 java 主文件进行全新的导出似乎可以解决问题, 我用过

export JAVA_HOME=/Library/Java/JavaVirtualMachines/adoptopenjdk-8.jdk/Contents/Home/

似乎可以做到这一点,请注意您的目录可能不同,我建议使用“/”跟踪到正确的目录,然后使用 tab 来跟踪目录。

【讨论】:

    【解决方案7】:

    在我的情况下,我使用的是旧版本的 IDE,它已经死了,已经添加了 JAVA_HOME 变量,ini 和 eclipse 列表并且不工作,还注意到 virtualbox 已经死了也可以启动任何 VM。

    -vm/Library/Java/JavaVirtualMachines/jdk1.8.0_251.jdk/Contents/Home/bin/java

    【讨论】:

      【解决方案8】:

      已确认,将以下内容添加到 Infolplist 有效。我有 Oracle jdk 8 并更新了下面的值。 -vm/Library/Java/JavaVirtualMachines/jdk1.8.0_202.jdk/Contents/Home/bin/java

      【讨论】:

      • 你能解释一下infoIplist是什么意思吗?
      • 我错过了阅读这篇文章,你解决了这个问题吗?对于 infoplist,请阅读以上来自@Michael Peterson 的回复。 stackoverflow.com/a/63267200/3482387
      【解决方案9】:

      我尝试了在这个问题下发布的所有解决方案;但没有一个对我有用。最后,我安装了最新版本的 Eclipse 2020-09 (4.17.0) 使其工作。

      【讨论】:

        【解决方案10】:

        我前几天升级到Big Sur,今天早上终于运行Eclipse时也遇到了这个问题。

        最新的 Eclipse 2020-12 版本包含自己的 JRE (!),因此我不再遇到“无法创建 java 虚拟机”的情况。我暂时保持 Java 版本不变,因为我只使用 Eclipse 创建 Tomcat webapps 并且不运行独立的 Java。

        $ /usr/libexec/java_home 
        /Library/Internet Plug-Ins/JavaAppletPlugin.plugin/Contents/Home
        
        $ /usr/libexec/java_home -V
        Matching Java Virtual Machines (3):
            1.8.121.13 (x86_64) "Oracle Corporation" - "Java" /Library/Internet Plug-Ins/JavaAppletPlugin.plugin/Contents/Home
            1.8.0_121 (x86_64) "Oracle Corporation" - "Java SE 8" /Library/Java/JavaVirtualMachines/jdk1.8.0_121.jdk/Contents/Home
            1.7.0_60 (x86_64) "Oracle Corporation" - "Java SE 7" /Library/Java/JavaVirtualMachines/jdk1.7.0_60.jdk/Contents/Home
        /Library/Internet Plug-Ins/JavaAppletPlugin.plugin/Contents/Home
        

        【讨论】:

          【解决方案11】:

          除了上面推荐的所有步骤之外,我还必须创建以下符号链接:

              cd /Library/Java/JavaVirtualMachines/jdk1.8.0_201.jdk/Contents/Home/lib
              sudo ln -s ../jre/lib/server/libjvm.dylib libserver.dylib
          

          我使用的 Eclipse 版本是 4.4.1。 (因为经过测试可以很好地与 WebObjects 配合使用)

          【讨论】:

            【解决方案12】:

            我必须安装最新版本的 Eclipse 才能使其工作,因为它使用 Java 11。这发生在我更新到 Big Sur 之后。

            【讨论】:

              【解决方案13】:
              • 第 1 步:卸载 jdk 8
              • 第 2 步:通过 brew 安装 openjdk14
              • 第 3 步:安装 eclipse 2020-12 版本

              【讨论】:

                【解决方案14】:

                我删除了所有已安装的 Eclipse 文件,只是在 Home brew 上使用 --cask eclipse-jee 重新安装。我希望它对像过去一样挣扎的人有所帮助。

                【讨论】:

                  【解决方案15】:

                  我在使用 Eclipse Mat 和 JDK Mission Control 时遇到了这个问题 在 Mac OS v11.6 (Big Sur) 上,依赖项是 Java 11。以下是在whatever.app/Contents/Info.plist中添加的

                  <key>Eclipse</key>
                  <array>
                       <string>-vm</string
                        <string>/Users/<yourHomeDir>/.sdkman/candidates/java/11.0.2-open/bin/java</string>
                        <string>-keyring</string>
                        <string>~/.eclipse_keyring</string>
                  </array>
                  

                  【讨论】:

                    【解决方案16】:

                    如果您使用的是 eclipse 2020-06,请确保在调试时您将面临弹出的空白灰色窗口。 再也没有机会在 eclipse 2020-06 中使用 Big Sur。我正在使用 eclipse 2021-03 IDE 开发人员,它工作正常。但是 STS 不再支持,您必须为您的项目手动更改为旧的 JAVA 1.8。

                    1. 右键单击项目和属性
                    2. 配置 Java 构建路径
                    3. 库选项卡 -> 编辑 -> 更改为 Java 1.8
                    4. 订购和导出选项卡 -> 将 JRE 系统库移到项目和外部依赖项之上。

                    【讨论】:

                      【解决方案17】:

                      除了给出的建议之外,我还必须执行一个额外的步骤,将 eclipse 应用程序从隔离区中删除:

                      1)打开一个shell

                      2) cd 进入 eclipse 目录。

                      3)查看Eclipse.app/$xattr Eclipse.app/com.apple.quarantine目录的属性

                      4) 移除“com.apple.quarantine”属性。 $ xattr -d com.apple.quarantine Eclipse.app/

                      完成此操作以及编辑 Info.plist 的步骤后,我能够打开 Eclipse

                      【讨论】:

                        猜你喜欢
                        • 2021-03-10
                        • 1970-01-01
                        • 1970-01-01
                        • 2021-06-05
                        • 2021-01-12
                        • 2021-06-08
                        • 2022-01-14
                        • 2021-03-01
                        • 2021-09-04
                        相关资源
                        最近更新 更多