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

2022-08-31 05:00:29

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

我正在尝试调试

“.class文件中的版本号错误”

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

我正在使用 ,但我的版本是 1.6.0_13。JRE1.5.0_6JDK

我正在编译,在eclipse中将兼容模式设置为1.5,我认为这会起作用...


答案 1

您正在命令行上查找此内容(对于名为 MyClass 的类):

在Unix/Linux上:

javap -verbose MyClass | grep "major"

在视窗上:

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

答案 2

顺便说一句,您遇到麻烦的原因是java编译器识别两个版本标志。有 -source 1.5,它假设 java 1.5 级源代码,以及 -target 1.5,它将发出 java 1.5 兼容的类文件。您可能希望同时使用这两个开关,但您肯定需要 -target 1.5;尝试仔细检查日食是否在做正确的事情。


推荐