找不到任何与版本匹配的JVM“;1.8.0“U 40”;在macOS上打开终端时

找不到任何与版本匹配的JVM“;1.8.0“U 40”;在macOS上打开终端时,macos,terminal,java-8,Macos,Terminal,Java 8,我已经安装了jdk1.8.0_121,JAVA_HOME似乎是正确的。 但当我打开终端时,它总是提醒我“找不到任何与版本“1.8.0_40”匹配的JVM”。 之前安装了jdk1.8.0_40,但我已经卸载了此版本 有人知道如何删除这个恼人的提醒吗? 非常感谢。@sideshowbarker,你说得对。我检查了所有shell初始化文件,发现java版本在/etc/profile中设置为1.8.040。 再次感谢。MacOS X没有预装Java开发工具包(JDK)。 在终端中运行java-ver

我已经安装了jdk1.8.0_121,JAVA_HOME似乎是正确的。 但当我打开终端时,它总是提醒我“找不到任何与版本“1.8.0_40”匹配的JVM”。

  • 之前安装了jdk1.8.0_40,但我已经卸载了此版本

  • 有人知道如何删除这个恼人的提醒吗?
    非常感谢。

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

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

    接下来,将提示您访问JavaSE开发工具包下载页面。下载一个JDK(Java开发工具包),其文件扩展名以
    .tar.gz
    结尾

    然后运行
    tar-xf.tar.gz


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

    请使用类似
    brew cask安装采用OpenJDK8
    安装不推荐的JAVA版本,尤其是Android Studio

    使用
    java\u 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
    
    $setjdk 12
    $avdmanager
    线程“main”java.lang.NoClassDefFoundError中出现异常:javax/xml/bind/annotation/XmlSchema
    位于com.android.repository.api.SchemaModule$SchemaModule版本。(SchemaModule.java:156)
    位于com.android.repository.api.SchemaModule(SchemaModule.java:75)
    位于com.android.sdklib.repository.AndroidSdkHandler.(AndroidSdkHandler.java:81)
    在com.android.sdklib.tool.avdmanagerci.run(avdmanagerci.java:213)
    位于com.android.sdklib.tool.avdmanagerli.main(avdmanagerli.java:200)
    原因:java.lang.ClassNotFoundException:javax.xml.bind.annotation.XmlSchema
    位于java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:583)
    位于java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:178)
    位于java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:521)
    ... 还有5个
    
    我在安装颤振时遇到了JVM问题,因此我的发现尤其基于macOS 10.15.5,如果安装最新的java,JVM错误仍然会出现。为此,您必须安装apple的旧版java

    从这里下载java

    然后 启动板->其他->脚本编辑器

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

    设置dmg以选择文件,并提示{“dmg”}类型的“请选择javaforosx.dmg:” 是否执行shell脚本“hdiutil mount”&引用了DMG的POSIX路径形式 执行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--flatte~/tmp~/Desktop/ModifiedJava6Install.pkg” 执行shell脚本“rm-rf~/tmp” 显示对话框“修改后的ModifiedJava6Install.pkg保存在桌面上”按钮{“确定”}

    然后脚本->编译,然后脚本->运行

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

    运行该脚本将在桌面上创建ModifiedJava6Install.pkg


    运行这个ModifiedJava6Install.pkg来安装旧版Java。

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

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

    你能展示一下你键入的生成该消息的命令吗?@Joe嗯,我没有键入任何命令。当我打开终端时,会显示此消息。您的.bashrc或.bash_配置文件或.profile文件中有一些与Java相关的内容需要检查。请详细说明,您的id到底是什么?