不支持ClassVersionError,尽管Java版本相同
我在目标计算机中遇到此错误,尽管:不支持ClassVersionError,尽管Java版本相同,java,swing,class,unsupported-class-version,Java,Swing,Class,Unsupported Class Version,我在目标计算机中遇到此错误,尽管: 我的源计算机和目标计算机都安装了相同版本的Java-1.6更新 我编译并以类似方式运行的所有文件都能完美运行,除了这一个——它是我的应用程序的Swing GUI 另外,我没有使用任何IDE,我使用普通记事本进行编辑 为什么不支持ClassVersionError而不顾这三个约束,以及它的解决方案 注意:该文件是一个简单的GUI前端代码,可以在源代码上完美地工作,它使用了AWT和SWING中的简单库 Exception in thread "main" java
不支持ClassVersionError
而不顾这三个约束,以及它的解决方案
注意:该文件是一个简单的GUI前端代码,可以在源代码上完美地工作,它使用了AWT和SWING中的简单库
Exception in thread "main" java.lang.UnsupportedClassVersionError: Bad version number in .class file
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClass(Unknown Source)
at java.security.SecureClassLoader.defineClass(Unknown Source)
at java.net.URLClassLoader.defineClass(Unknown Source)
at java.net.URLClassLoader.access$100(Unknown Source)
at java.net.URLClassLoader$1.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClassInternal(Unknown Source)
不幸的是,事实上,您的主类是使用较新版本的Java编译器编译的。该类文件或您的类文件以某种方式严重损坏。检查您的
路径上是否没有安装多个版本的java
和javac
。您可能还想尝试将-target1.6
传递给javac;如果您正在运行(例如)JavaC1.7,这将指示它生成与Java1.6兼容的代码
请记住,您可以安装不同版本的JRE和JDK—根据您的路径顺序,您的系统可能会选择Java 1.7作为javac
,而选择Java 1.6作为Java
此外,如果在类路径上有任何第三方库,那么应该确保它们也不是用较新版本的Java编译的。如果您的其他类没有使用可能掩盖了问题的第三方库。不幸的是,事实上,您的主类使用的Java编译器版本比您运行的版本更新。该类文件或您的类文件以某种方式严重损坏。检查您的路径上是否没有安装多个版本的java
和javac
。您可能还想尝试将-target1.6
传递给javac;如果您正在运行(例如)JavaC1.7,这将指示它生成与Java1.6兼容的代码
请记住,您可以安装不同版本的JRE和JDK—根据您的路径顺序,您的系统可能会选择Java 1.7作为javac
,而选择Java 1.6作为Java
此外,如果在类路径上有任何第三方库,那么应该确保它们也不是用较新版本的Java编译的。如果您的其他类没有使用可能掩盖问题的第三方库。当您试图运行在不同版本的JDK中编译的类以在不同版本的JRE上执行时,会发生这种情况
请检查您的jdk和JRE版本是否相同或兼容。您可以使用java-version检查版本,当您试图在不同版本的JRE上运行在不同版本的JDK中编译的类时,会出现这种情况
请检查您的jdk和JRE版本是否相同或兼容。您可以使用java-version-target 1.6
检查版本,仅确保该版本具有正确的幻数和类格式。为了更好地测试兼容性,请另外使用源代码
&-bootclasspath
选项。@AndrewThompson,的确如此,但OP报告中的问题是关于幻数和/或类格式错误,所以这是一个很好的第一步。事实上,我在目的地编译代码,得到了相同的错误@Purushottam,正如我所说,您可能安装了多个Java版本,Java和javacyes使用了不同的版本。我的path和classpath中有不同且不兼容的JDK和JRE版本。问题解决了,非常感谢<代码>-目标1.6
仅确保该版本的魔法编号和类格式正确。为了更好地测试兼容性,请另外使用源代码
&-bootclasspath
选项。@AndrewThompson,的确如此,但OP报告中的问题是关于幻数和/或类格式错误,所以这是一个很好的第一步。事实上,我在目的地编译代码,得到了相同的错误@Purushottam,正如我所说,您可能安装了多个Java版本,Java和javacyes使用了不同的版本。我的path和classpath中有不同且不兼容的JDK和JRE版本。问题解决了,非常感谢!我提到过我的JRE和JDK安装在同一版本我提到过我的JRE和JDK安装在同一版本