java - 在 cmd javac -version 上获取“不兼容的魔法值 0”
问题描述
打开 Eclipse 时出现错误,当我使用 cmad javac -version 时出现错误
“线程“主”java.lang.ClassFormatError 中的异常:类文件 javax/tools/StandardJavaFileManager 中的魔法值 0 不兼容”
你能帮我解决这个问题吗
操作系统: windows 10
java 版本
java 版本 "11.0.6" 2020-01-14 LTS
Java(TM) SE Runtime Environment 18.9 (build 11.0.6+8-LTS)
Java HotSpot(TM) 64-Bit Server VM 18.9 (build 11.0.6+8-LTS,混合模式)
堆栈跟踪
at java.base/java.lang.ClassLoader.defineClass2(Native Method)
at java.base/java.lang.ClassLoader.defineClass(ClassLoader.java:1108)
at java.base/java.security.SecureClassLoader.defineClass(SecureClassLoader.java:206)
at java.base/jdk.internal.loader.BuiltinClassLoader.defineClass(BuiltinClassLoader.java:759)
at java.base/jdk.internal.loader.BuiltinClassLoader.findClassInModuleOrNull(BuiltinClassLoader.java:680)
at java.base/jdk.internal.loader.BuiltinClassLoader.loadClassOrNull(BuiltinClassLoader.java:605)
at java.base/jdk.internal.loader.BuiltinClassLoader.loadClassOrNull(BuiltinClassLoader.java:640)
at java.base/jdk.internal.loader.BuiltinClassLoader.loadClassOrNull(BuiltinClassLoader.java:609)
at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:579)
at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:178)
at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:521)
at java.base/java.lang.ClassLoader.defineClass2(Native Method)
at java.base/java.lang.ClassLoader.defineClass(ClassLoader.java:1108)
at java.base/java.security.SecureClassLoader.defineClass(SecureClassLoader.java:206)
at java.base/jdk.internal.loader.BuiltinClassLoader.defineClass(BuiltinClassLoader.java:759)
at java.base/jdk.internal.loader.BuiltinClassLoader.findClassInModuleOrNull(BuiltinClassLoader.java:680)
at java.base/jdk.internal.loader.BuiltinClassLoader.loadClassOrNull(BuiltinClassLoader.java:605)
at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:579)
at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:178)
at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:521)
at jdk.compiler/com.sun.tools.javac.main.Main.compile(Main.java:169)
at jdk.compiler/com.sun.tools.javac.Main.compile(Main.java:57)
at jdk.compiler/com.sun.tools.javac.Main.main(Main.java:43)
解决方案
您的Java 安装似乎已损坏。
因此,请尝试卸载您的 Java 11.0.6并安装较新的 Java 11.0.8(例如,来自采用 Openjdk.net的免费提供比您拥有的 Oracle 提供的更长期的长期支持;或来自 Oracle 的 Java 11.0.8 或从其他地方也应该工作)。
推荐阅读
- git - 恢复 git 重置
- class - 如何定义一个类,其中某些边缘对于 OrientDB 中的所有分配记录都是强制性的?
- terraform - 无法再创建/销毁 Azure VM (OSProvisioningInternalError)
- javascript - 如何将数据从 Flask 传递到 Javascript?
- javascript - 如何在 JavaScript 中多次获得重复功能播放声音?
- xamarin.android - Xamarin.Android。访问条码扫描器
- kubernetes - 我们可以使用 kubectl 从命令行创建多个命名空间吗
- c++ - QNX 上的 std::mktime 返回 -1
- circleci - 我可以在 circleci 上过滤整个工作流程吗?
- excel - 如何使用引号从 Excel 导出我的 csv?