2

我在我的目标计算机中收到此错误,尽管:

  1. 我的源计算机和目标计算机都安装了相同版本的 Java - 1.6 第 26 次更新
  2. 我以类似方式编译和运行的所有文件都可以完美运行,除了这个 - 它是我的应用程序的 Swing GUI
  3. 另外我没有使用任何 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)
4

2 回答 2

3

不幸的是,事实上,你的主类是用比你运行它的新版本的 Java 编译器编译的。那个或你的类文件以某种其他方式被严重损坏了。检查您java的. 您可能还想尝试传递给 javac;如果您正在运行(例如)javac 1.7,这将指示它生成与 Java 1.6 兼容的代码。javacPATH-target 1.6

请记住,您可以安装不同版本的 JRE 和 JDK - 根据您的 PATH 顺序,您的系统可能会javacjava.

此外,如果您的类路径中有任何第三方库,您应该确保它们也没有使用较新版本的 Java 编译。如果您的其他类没有使用可能掩盖问题的第三方库。

于 2012-04-21T07:44:32.667 回答
1

当您尝试运行在不同版本的 JDK 中编译的类以在不同版本的 JRE 上执行时,就会发生这种情况,

请检查您的 jdk 和 JRE 版本是否相同或兼容。您可以使用 java -version 检查版本

于 2012-04-21T07:45:22.337 回答