MANIFEST规范 - 版本不可见

时间:2017-04-13 14:22:38

标签: java eclipse jar packages

我创建一个jar文件并添加包含版本信息的清单。 在单独的测试中,我可以很好地检索这些信息。

"有时"但是,这不起作用。 我从该jar文件中获取了一个类的包对象,但是该包没有清单中提供的版本信息。

这是因为失败的测试是在eclipse的调试中运行的,还是在测试代码使用与jar文件提供的相同的包时发生?

jar文件:

package org.mycomp.test;
public class C { }

我的测试:

package org.mycomp.test;  // is this the problem?
class test_C {
  public static void main(String[] args) { 
   org.mycomp.test.C c = Class.forName("org.mycomp.test.C").getInstance();
   // org.mycomp.test.C c = new org.mycomp.test.C();  // same problem
   Package p = c.getClass().getPackage();
   System.out.println (p.getSpecificationVersion()); // null
  }
}

除了最终的回答"是的,这就是问题",我想得到一些提示如何最终避免这种情况。

通常,为了获得对包私有对象的访问权限,我们希望在与测试代码相同的包中进行测试,不是吗?

0 个答案:

没有答案