Я пытаюсь извлечь информацию из моего файла манифеста для отображения в одном из методов в моем jar
файле, но, похоже, есть некоторые проблемы. Любая помощь приветствуется.Как читать метаданные из файла манифеста
файл манифеста:
Manifest-Version: 1.0
Created-By: 1.8.0_60 (Oracle Corporation)
Main-Class: com.example.package1.myClass
Name: com/example/package1
Specification-Title: MyPackage
Specification-Version: v1.1
Specification-Vendor: MyCompanyName
Implementation-Title: MP
Implementation-Version: 2015-11-05-C
Implementation-Vendor: MyName
Name: com/example/package2
Specification-Title: MySecondaryPackage
Specification-Version: v2.0
Specification-Vendor: MyCompanyName
Implementation-Title: M2ndP
Implementation-Version: 2015-11-05-C
Implementation-Vendor: MyName
myClass.java:
package com.example.package1;
import com.example.package2;
class myClass {
public static void main(String[] args) {
try {
myClass clz = new myClass();
Thread.sleep(10000); //pause 10 seconnds so we can see what's spit out
} catch (Exception e) {
//excluded in example
}
}
public myClass() {
Package pkg = getClass().getPackage();
if (pkg == null)
System.out.println("No Package Found");
else {
System.out.println("specs: " + pkg.getSpecificationTitle() + " - " + pkg.getSpecificationVersion());
System.out.println("imps: " + pkg.getImplementationTitle() + " - " + pkg.getImplementationVersion());
System.out.println("name: " + pkg.getName());
}
//other code here excluded from example
}
}
Выход:
specs: null - null
imps: null - null
name: com.example.package1
Так что это дает? Похоже, что объект pkg определяется правильно, но он не читает никаких свойств спецификации или реализации.
Я думаю, этот вопрос отвечает на ваш вопрос: http://stackoverflow.com/questions/1272648/reading-my-own-jars-manifest –
@Clayton, спасибо, но я Я уже был там и пробовал это. Я попробовал несколько вариантов там, но не получил дальше, чем у меня здесь; имя пакета, но только нулевые значения для свойств. –
Эти методы для извлечения свойств из пакета должны работать, иначе какая цель они служат? Я просто слишком много интерпретирую их функцию против файла manifest.mf в банке? Я чувствую, что мне нужно пропустить что-то простое. Это сводит меня с ума. –