【发布时间】:2016-02-06 19:40:15
【问题描述】:
我正在尝试从我的清单文件中提取信息以显示在我的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 对象的定义正确,但它没有读取任何规范或实现属性。
【问题讨论】:
-
我认为这个问题回答了你的问题:stackoverflow.com/questions/1272648/…
-
@Clayton,谢谢,但我已经去过那里并尝试过。我在那里尝试了几种选择,但没有比这里更进一步;包名,但属性只有 null 值。
-
这些从包中检索属性的方法应该可以工作,否则它们有什么用途?我是否只是针对 jar 中的 manifest.mf 文件对它们的功能进行了过多的解释?我觉得我一定错过了一些简单的东西。这让我发疯了。
标签: java manifest.mf