选jar manifest就可以解决。
原理:
MANIFEST.MFjar包META-INF目录下包含一个MANIFEST.MF文件,里面包含一些版本信息,标题,实现组织,很多第三方的jar包还会自定义一个属性。
读取jar包中MANIFEST.MF中的内容概述
JDK提供了java.util.jar.Manifest,用于封装MANIFEST.MF中的属性值。应用程序启动时会通过类加载器加载jar包中的类。
加载类之前先读取jar包。
首先将jar包路径封装在sun.misc.URLClassPath.Loader中,该类是一个抽象类,有两个子类,sun.misc.URLClassPath.JarLoader:用于加载jar包中的资源
sun.misc.URLClassPath.FileLoader:用于加载目录中的资源
URLClassPath.Loader中有个URLClassPath.Loader#getResource(java.lang.String, boolean)用于返回sun.misc.Resource对象,Resource中的方法Resource#getManifest则可以获取Manifest对象,便可以读取MANIFEST.MF其中的属性值.
Resource有两个匿名内部类的实现:
一个是在URLClassPath.FileLoader#getResource方法中创建,但该方法并没有实现读取MANIFEST.MF;
另一个是在JarLoader#getResource(java.lang.String, boolean)中创建,该内部类实现了读取MANIFEST.MF
java原生和SpringBoot读取jar包中MANIFEST.MF的方式_brucelwl的博客-CSDN博客_java读取manifest



