【问题标题】:Unable to find any JVMs matching version "1.8.0_40" when open terminal on macOS在 macOS 上打开终端时找不到任何匹配版本“1.8.0_40”的 JVM
【发布时间】:2017-02-02 02:50:41
【问题描述】:
  • 我已经安装了 jdk1.8.0_121 并且 JAVA_HOME 似乎是正确的。 但是当我打开终端时,它总是提醒我“找不到任何与版本“1.8.0_40”匹配的JVM”。

  • jdk1.8.0_40 之前安装过,但是我已经卸载了这个版本。

有谁知道如何删除这个烦人的提醒? 非常感谢。

【问题讨论】:

  • 您能显示您键入的生成该消息的命令吗?
  • @Joe 好吧,我没有输入任何命令。当我打开终端时,会出现此消息。
  • 您的 .bashrc 或 .bash_profile 或 .profile 中有一些与 Java 相关的内容需要检查

标签: macos terminal java-8


【解决方案1】:

MacOS X 没有预装 Java 开发工具包 (JDK)。 在终端中运行java -version,可能会提示您安装Java。 除非你已经安装了 JVM,否则你会看到构建版本号。

接下来,系统将提示您访问 Java SE 开发工具包下载页面。下载文件扩展名以 <filename>.tar.gz 结尾的 JDK(Java 开发工具包)之一。

然后运行tar -xf <filename>.tar.gz

将新创建的目录重命名为JAVA_HOME

【讨论】:

    【解决方案2】:

    我在终端中使用这个命令解决了这个问题

    brew install --cask homebrew/cask-versions/adoptopenjdk8
    

    【讨论】:

      【解决方案3】:

      @sideshowbarker,你是对的。我检查了所有shell初始化文件,发现/etc/profile中的java版本设置为1.8.0_40。 再次感谢。

      【讨论】:

      • 能否请您详细说明一下,您的具体身份是什么?
      【解决方案4】:

      请使用 brew cask install adoptopenjdk8 来安装已弃用的 java 版本,尤其是。对于 Android Studio。

      使用java_home -V显示所有java安装版本,如:

      /usr/libexec/java_home -V
      Matching Java Virtual Machines (5):
          12.0.2, x86_64: "Java SE 12.0.2"    /Library/Java/JavaVirtualMachines/jdk-12.0.2.jdk/Contents/Home
          12.0.1, x86_64: "OpenJDK 12.0.1"    /Library/Java/JavaVirtualMachines/openjdk-12.0.1.jdk/Contents/Home
          1.8.0_222, x86_64:  "AdoptOpenJDK 8"    /Library/Java/JavaVirtualMachines/adoptopenjdk-8.jdk/Contents/Home
          1.6.0_65-b14-468, x86_64:   "Java SE 6" /Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home
          1.6.0_65-b14-468, i386: "Java SE 6" /Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home
      

      .zshrc.bash_profile内设置默认jdk,如使用命令setjdk 1.8

      export JAVA_HOME=`/usr/libexec/java_home -v 1.8`
      
      function setjdk() {
          export JAVA_HOME=`/usr/libexec/java_home -v $@`
      }
      

      在最近的 java/jdk v12 中,Android Studio CLI 不起作用:

      $setjdk 12
      $avdmanager
      Exception in thread "main" java.lang.NoClassDefFoundError: javax/xml/bind/annotation/XmlSchema
          at com.android.repository.api.SchemaModule$SchemaModuleVersion.<init>(SchemaModule.java:156)
          at com.android.repository.api.SchemaModule.<init>(SchemaModule.java:75)
          at com.android.sdklib.repository.AndroidSdkHandler.<clinit>(AndroidSdkHandler.java:81)
          at com.android.sdklib.tool.AvdManagerCli.run(AvdManagerCli.java:213)
          at com.android.sdklib.tool.AvdManagerCli.main(AvdManagerCli.java:200)
      Caused by: java.lang.ClassNotFoundException: javax.xml.bind.annotation.XmlSchema
          at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:583)
          at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:178)
          at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:521)
          ... 5 more
      
      【解决方案5】:

      我在安装flutter时遇到了JVM问题,所以我的发现特别基于macOS 10.15.5,如果你安装最新的java,JVM错误仍然会出现。为此,您必须从苹果安装旧版 java。

      从这里下载java https://support.apple.com/kb/DL1572?locale=en_GB

      那么 启动板 -> 其他 -> 脚本编辑器

      创建一个新文档并按原样粘贴以下代码

      将DMG设置为选择带有提示“请选择javaforosx.dmg:”类型{“dmg”}的文件 执行 shell 脚本 "hdiutil mount" & 引用形式的 POSIX 路径的 DMG 执行 shell 脚本“pkgutil --expand /Volumes/Java\ for\ macOS\ 2017-001/JavaForOSX.pkg ~/tmp” 执行 shell 脚本“hdiutil unmount /Volumes/Java\ for\ macOS\ 2017-001/” 执行 shell 脚本 "sed -i '' 's/return false/return true/g' ~/tmp/Distribution" 执行 shell 脚本“pkgutil --flatten ~/tmp ~/Desktop/ModifiedJava6Install.pkg” 执行 shell 脚本“rm -rf ~/tmp” 显示对话框“已修改的 ModifiedJava6Install.pkg 保存在桌面上”按钮 {“Ok”}

      然后是脚本 -> 编译然后是脚本 -> 运行。

      一个弹出窗口会要求您找到下载的文件 javaforosx.pkg

      运行脚本将在您的桌面上创建一个 ModifiedJava6Install.pkg。

      运行此 ModifiedJava6Install.pkg 以安装旧版 Java。

      【讨论】:

        猜你喜欢
        • 2020-08-14
        • 1970-01-01
        • 1970-01-01
        • 2016-04-21
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2020-12-15
        相关资源
        最近更新 更多