Java - 哪个版本也是.jar文件?

时间:2010-12-14 15:40:44

标签: java jar

有没有办法找出用于构建.jar文件的JDK版本?

4 个答案:

答案 0 :(得分:11)

这是不可能的,因为您甚至不需要JDK来构建JAR文件 - 它只是一个包含类和清单文件的ZIP文件。

您可以找到的是the class file format的使用版本。主要版本号映射到majorJDK版本:

J2SE 6.0 = 50 (0x32 hex)
J2SE 5.0 = 49 (0x31 hex)
JDK 1.4 = 48 (0x30 hex)
JDK 1.3 = 47 (0x2F hex)
JDK 1.2 = 46 (0x2E hex)
JDK 1.1 = 45 (0x2D hex)

但是,java编译器可以选择使用以前版本的类文件格式,该格式经常用于实现向下兼容性。但是,如果您发现类文件版本的主要编号为50,则您知道这些类绝对不是使用Java 5或更早版本的JDK编译的。

答案 1 :(得分:10)

大多数罐子都是使用随jdk打包的“jar”工具构建的。

在SUN的JDK中,提供的“jar”工具将在嵌入的META-INF / MANIFEST.MF文件中添加“Created-By”行。

该行将指定创建JAR的JDK版本(在我的案例中为“Created-By:1.6.0_17(Sun Microsystems Inc.)”)

其他Java供应商也倾向于这样做。

答案 2 :(得分:8)

您可以从jar文件中提取类文件,并使用以下命令:

javap -verbose SomeClass | grep major

应该为您提供类文件的版本号。

答案 3 :(得分:6)

在Jars MANIFEST.MF中,可能有一个Build-Jdk属性应该是您正在寻找的属性。