是否有一个 ant 任务允许我查看某个 jar 文件并找出 jar 中的类文件是为哪个 Java 版本编译的?
你将不得不写一个。 你可以用现有的任务来做到这一点,但它会很丑陋——这不是蚂蚁真正发光的地方。
你可以解压缩jar,然后要么执行到文件(像Unix一样的机器),你看到这个是版本51(java 7)
$file MyClass.class
MyClass.class; compiled Java class data, version 51.0
或者,如果您使用的是Windows,则可以使用javap -v
$javap -v MyClass.class
Classfile
MyClass.class
Last modified Sep 24, 2013; size 7317 bytes
MD5 checksum 73667731fe2ec6519b1c0c4676a96c70
public class com.foo.MyClass
minor version: 0
major version: 51
然后,您必须使用替换正则表达式或一些酱汁来查找主要版本。
你最好写一个小任务,你可以使用 Apache 的字节码工程库来提取版本。