如何检查用于编译.class文件的JDK版本

< p > 可能的重复: < br > 读取和显示Java .class版本的工具 < / p >

我正在调试

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

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

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

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

355610 次浏览

你在命令行(一个叫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命令的-verbose标志是否产生任何有用的信息?如果不是,也许java -X揭示了一些特定于你的版本可能有帮助?

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

免费的JarCheck工具在这里

你可以试试jclasslib:

https://github.com/ingokegel/jclasslib

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