有没有一种方法可以判断一个类是否是为java6编译的?

5

我应该怎样判断一个Java类是否编译用于Java 6虚拟机?

有简单的方法吗?

3个回答

4
在Unix系统中,
$ javap -classpath <classpath> -verbose foo.Bar \
  | grep -q 'major version: 50' && echo yep || echo nope

感谢 @matt b.

4

我更希望找到像命令那样的东西,或者通过查看文件头之类的东西来解决问题。 但是你的回答到目前为止是最接近我想要的了。 - feniix
4
javap -verbose -classpath ... com.company.YourClassName 将为您打印出版本号。 - matt b
1
由于Matt B没有给出实际答案,也没有人给出魔法数字(50),我自己添加了一个答案,并使它更容易得到一个是/否的答案。 - Kevin Bourrillion

0

...这并不顺利,至少在jd-gui中不是。这个软件没有提供查看类文件元数据的功能。(使用实际版本V0.3.2进行了快速测试)。因此,使用这种方法,您必须寻找使用Java 1.6之前不存在的类/方法。 - Andreas Dolk
不精确的Andreas_D,编译器的版本可以通过JD-GUI显示:拖放一个类文件并将鼠标移动到选项卡上。 - Emmanuel Dupuy

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接