我正在尝试运行此示例 ,但它给了我“.class 文件中的错误版本号...”错误。我正在使用 jdk 1.6 版,示例要求使用 jdk 1.5。java应该支持向下兼容。如何使用 jdk 1.6 运行示例?
2 回答
当您尝试在较旧的 JVM 上运行具有新版本号的类文件时,会出现“.class 文件中的错误版本号...”错误。(即便如此,并非在所有情况下)
在较新的 JVM 上运行具有旧版本号的类文件应该可以工作。
您可以使用 . 检查类文件的版本号javap -v <full-class-name>
。版本是:
major minor Java
45 3 1.0
45 3 1.1
46 0 1.2
47 0 1.3
48 0 1.4
49 0 1.5
50 0 1.6
我认为...
51 0 1.7
这里有一个微妙的陷阱,许多新手都会落入其中。有时——实际上,经常——你可能java.exe
在你的机器上安装了一个旧JDK的副本,出现在你的路径的早期,你不知道。您可能会遇到使用闪亮的新 JDK 1.6 编译器编译类的情况,然后尝试使用旧java.exe
的 . 如果 oldjava.exe
的位置在您的路径上早于 JDKbin
目录,那么您将从命令行找到编译器,但不是其java.exe
自身的正确版本。
额外java.exe
的通常是由 Java 插件的旧安装程序安装的——它允许您在 Web 浏览器中运行小程序。流氓java.exe
可能在您的WINDOWS
目录中,或者在某个变体中(这是一个特殊的以 Windows 为中心的问题)。
如果您安装了包含 Java 插件的 JDK 1.6,那么您只需删除java.exe
WINDOWS 目录中的副本即可。如果你不想这样做,你应该改变你的路径,使 JDK 的bin
目录在WINDOWS
.