我正试图调试一个Java中的 "Bad version number in .class file" 错误,有没有一种方法可以检查 .class
文件的版本?
我正在使用JRE1.5.0_6
,但我的JDK
版本是1.6.0_13。
我在Eclipse中将兼容性模式设置为1.5进行编译,但我认为这应该有效...
我正试图调试一个Java中的 "Bad version number in .class file" 错误,有没有一种方法可以检查 .class
文件的版本?
我正在使用JRE1.5.0_6
,但我的JDK
版本是1.6.0_13。
我在Eclipse中将兼容性模式设置为1.5进行编译,但我认为这应该有效...
javap -verbose MyClass | grep "major"
javap -verbose MyClass | findstr "major"
Java版本 | 主要版本 |
---|---|
1.2 | 46 |
1.3 | 47 |
1.4 | 48 |
5 | 49 |
6 | 50 |
7 | 51 |
8 | 52 |
9 | 53 |
10 | 54 |
11 | 55 |
12 | 56 |
13 | 57 |
14 | 58 |
15 | 59 |
16 | 60 |
17 | 61 |
18 | 62 |
19 | 63 |
20 | 64 |
21 | 65 |
00 2E
-> JDK 1.2 = 46(0x2E十六进制)。如果您无法访问javap,则此方法很有用。参考:http://en.wikipedia.org/wiki/Java_class_file#General_layout - Jim顺便说一下,你遇到问题的原因是Java编译器识别了两个版本标志。有-source 1.5,它假定使用Java 1.5级源代码,还有-target 1.5,它将发出Java 1.5兼容的类文件。您可能需要同时使用这两个开关,但肯定需要-target 1.5;请确保Eclipse正在执行正确的操作。
java
命令中的-verbose
标志是否提供了任何有用的信息?如果没有,也许 java -X
可以显示与您版本相关的特定信息,可能会有所帮助。