从jar中暴露出特定的包装

时间:2015-11-06 10:10:54

标签: java

是否可以从jar文件中仅访问少量软件包,对于剩余的软件包,我们可以隐藏它们以便从jar文件中访问。

例如,

enter image description here

我想访问 p1 包中的类,并隐藏所有其他类 p2 p3 包 来自jar文件。虽然 p2 p3 中的课程是公开的,并且是在 p1 包中的类中实现的?

2 个答案:

答案 0 :(得分:2)

默认的JAR文件无法做到这一点。您有两种选择:

  • 将私有包标记为internal并以客户端不会使用的方式记录文档,例如“此包下的类可以随时更改”,以便客户端不会使用它,就像JDK一样一样。
  • 另一个选择是使用OSGi,这有助于满足您的要求。 More info here

答案 1 :(得分:1)

您需要一些模块系统来实现这一目标,例如

  • OSGi(当前事实上的标准)
  • NetBeans模块系统(在NetBeans平台应用程序之外不常见)
  • Jigsaw(Java SE 9中即将推出的标准模块系统)