当我们打开大部分的开源项目源码的时候,一般都会看到一个与源代码并列的文件夹META-INF
META-INF文件夹相当于jar包的概要信息包,目录中的文件和目录获得Java 2平台的认可与解释,用来配置应用程序、扩展程序、类加载器和服务manifest.mf文件,在用jar打包时自动生成。
下面是spring-core-4.0.8.RELEASE.jar中的manifest.mf文件内容。
Manifest-Version: 1.0
Created-By: 1.8.0_20 (Oracle Corporation)
Implementation-Title: spring-test
Implementation-Version: 4.0.8.RELEASE
各个的意义:
Manifest-Version mf文件版本号,这行一般照抄
Main-Class 对于可执行jar包,包含main函数的类,程序的入口
Class-Path 用到的一些包
获取java类所在jar包的版本信息:
@Test
public void testGetVersion(){
try {
Class clazz = Class.forName("org.springframework.core.io.UrlResource");
System.out.println(clazz.getPackage().getImplementationTitle()+"-"+clazz.getPackage().getImplementationVersion());
} catch (ClassNotFoundException e) {
e.printStackTrace();
}
Package pack = Package.getPackage("org.springframework.core.io");
System.out.println(" " + pack.getImplementationVersion());
}