Я опоздал, но вы можете попробовать следующие два метода
используя эти необходимые классы
import java.util.jar.Attributes;
import java.util.jar.Manifest;
Эти методы позволяют мне получить доступ к атрибутам jar. Мне нравится быть обратно совместимым и использовать последние. Так что я использовал это
public Attributes detectClassBuildInfoAttributes(Class sourceClass) throws MalformedURLException, IOException {
String className = sourceClass.getSimpleName() + ".class";
String classPath = sourceClass.getResource(className).toString();
if (!classPath.startsWith("jar")) {
// Class not from JAR
return null;
}
String manifestPath = classPath.substring(0, classPath.lastIndexOf("!") + 1) +
"/META-INF/MANIFEST.MF";
Manifest manifest = new Manifest(new URL(manifestPath).openStream());
return manifest.getEntries().get("Build-Info");
}
public String retrieveClassInfoAttribute(Class sourceClass, String attributeName) throws MalformedURLException, IOException {
Attributes version_attr = detectClassBuildInfoAttributes(sourceClass);
String attribute = version_attr.getValue(attributeName);
return attribute;
}
Это хорошо работает, когда вы используете maven и вам нужны детали pom для известных классов. Надеюсь, это поможет.