如何在java程序中读取特定类路径jar的清单文件
我能够读取java程序中所有类路径JAR的清单文件。但我想读一个特定jar的清单文件,比如“xml-api-1.0.b2.jar”,它是如何实现的 我的工作代码是如何在java程序中读取特定类路径jar的清单文件,java,jar,manifest,Java,Jar,Manifest,我能够读取java程序中所有类路径JAR的清单文件。但我想读一个特定jar的清单文件,比如“xml-api-1.0.b2.jar”,它是如何实现的 我的工作代码是 Enumeration resEnum; try{ resEnum =Thread.currentThread().getContextClassLoader().getResources(JarFile.MANIFEST_NAME); while (resEnum.hasMoreElements()) {
Enumeration resEnum;
try{
resEnum =Thread.currentThread().getContextClassLoader().getResources(JarFile.MANIFEST_NAME);
while (resEnum.hasMoreElements()) {
try {
URL url = (URL)resEnum.nextElement();
InputStream is = url.openStream();
if (is != null) {
Manifest manifest = new Manifest(is);
Attributes mainAttribs = manifest.getMainAttributes();
String vendor = mainAttribs.getValue("Implementation-Vendor");
String version = mainAttribs.getValue("Implementation-Version");
if(!mainAttribs.getValue("Extension-Name").equals("null")){
System.out.println(mainAttribs.getValue("Implementation-Title"));
System.out.println(version);
System.out.println(vendor);
System.out.println(mainAttribs.getValue("Extension-Name"));
}
}
}catch(Exception e){}
}
}catch(Exception e){
您必须使用类并使用方法获取清单。您可以尝试此方法
if (url.getFile().contains("xml-apis-1.0.b2.jar")) {
...
}
“C:/maven_repo/log4j/log4j/1.2.17/log4j-1.2.17.jar”这是log4j库的路径,我使用的代码类似于final File f=new File(“C:/maven_repo/log4j/log4j/1.2.17/log4j-1.2.17.jar”);JarFile jar=新的JarFile(f);Manifest=jar.getManifest();但是我无法读取清单属性,所有属性都为空,我是Geeting是否引发了任何异常?这段代码在Linux机器上运行,因为jar可能缺少一些东西,但是这如何帮助获取清单的内容呢?它只是帮助选择所需的jar,这就是问题所在。