1

我正在尝试运行此示例 ,但它给了我“.class 文件中的错误版本号...”错误。我正在使用 jdk 1.6 版,示例要求使用 jdk 1.5。java应该支持向下兼容。如何使用 jdk 1.6 运行示例?

4

2 回答 2

1

当您尝试在较旧的 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
于 2011-09-09T15:30:32.607 回答
1

这里有一个微妙的陷阱,许多新手都会落入其中。有时——实际上,经常——你可能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.exeWINDOWS 目录中的副本即可。如果你不想这样做,你应该改变你的路径,使 JDK 的bin目录在WINDOWS.

于 2011-09-09T15:36:42.327 回答