如何检查用于编译.class文件的jdk版本
可能重复:
阅读和显示Java .class版本的工具
我正在尝试debugging一个
“.class文件中的版本号错误”
错误在Java中,有没有办法让我来检查.class
文件是哪个版本?
我正在使用JRE1.5.0_6
,但是我的JDK
版本是1.6.0_13。
我正在编译兼容模式设置为1.5在日食,我认为会工作…
您正在命令行上查找(对于名为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编译器识别两个版本标志。 有1.5源代码,它假定Java 1.5级别的源代码和-target 1.5,它将发出java 1.5兼容的类文件。 你可能会想要使用这两个开关,但你一定需要-target 1.5; 尝试双重检查,日食是做正确的事情。
免费的JarCheck工具在这里
你的java
命令的-verbose
标志是否会产生任何有用的信息? 如果没有,也许java -X
揭示了特定于您的版本的东西,可能有帮助?