尽管如此,我在目标计算机上还是收到此错误:
- 我的源计算机和目标计算机都安装了相同版本的 Java - 1.6 第 26 次更新
- 我以类似方式编译和运行的所有文件都运行完美,除了这个 - 它是我的应用程序的 Swing GUI
- 另外,我没有使用任何 IDE,我使用普通记事本进行编辑
尽管存在三个约束,但为什么会出现 UnsupportedClassVersionError
及其解决方案?
注意:该文件是一个简单的 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
安装并在您的PATH
上。您可能还想尝试传递 -target 1.6
到javac;如果您正在运行(例如)javac 1.7,这将指示它生成与 Java 1.6 兼容的代码。
请记住,您可以安装不同版本的 JRE 和 JDK - 根据您的 PATH 顺序,您的系统可能会选择 Java 1.7 javac
但是 Java 1.6 为 java
.
此外,如果您的类路径上有任何第三方库,您应该确保它们也不是使用较新版本的 Java 编译的。如果您的其他类没有使用第三方库,则可能掩盖了问题。
关于java - 尽管 Java 版本相同,但仍出现 UnsupportedClassVersionError,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10257200/