可能的重复: 读取和显示Java .class版本的工具

我正在调试

" .class文件中的版本号错误"

错误在java,有办法让我检查哪个版本的.class文件?

我使用的是JRE1.5.0_6,但我的JDK版本是1.6.0_13。

我在eclipse中编译兼容模式设置为1.5,我认为可以工作…


当前回答

免费的JarCheck工具

其他回答

java命令的-verbose标志是否产生任何有用的信息?如果不是,也许java -X揭示了一些特定于您的版本可能有帮助的东西?

你在命令行(一个叫MyClass的类)上寻找这个:

在Unix / Linux:

javap -verbose MyClass | grep "major"

在Windows上:

javap -verbose MyClass | findstr "major"

你想要结果中的主要版本。以下是一些示例值:

Java 1.2使用主要版本46 Java 1.3使用主要版本47 Java 1.4使用主要版本48 Java 5使用主版本49 Java 6使用主版本50 Java 7使用主版本51 Java 8使用主版本52 Java 9使用主版本53 Java 10使用主要版本54 Java 11使用主版本55

顺便说一句,你遇到麻烦的原因是java编译器识别两个版本标志。有-source 1.5,它假定java 1.5级别的源代码,和-target 1.5,它将发出与java 1.5兼容的类文件。你可能想使用这两个开关,但你肯定需要-target 1.5;尝试再次检查eclipse是否在做正确的事情。

你可以试试jclasslib:

https://github.com/ingokegel/jclasslib

它可以将自己与*.class扩展名相关联,这很好。

免费的JarCheck工具