找不到任何与版本匹配的JVM“;1.8.0“U 40”;在macOS上打开终端时
我已经安装了jdk1.8.0_121,JAVA_HOME似乎是正确的。 但当我打开终端时,它总是提醒我“找不到任何与版本“1.8.0_40”匹配的JVM”。找不到任何与版本匹配的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
非常感谢。@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到底是什么?