同一个包的类可以分布在多个Jar文件中吗?

时间:2009-04-02 07:56:52

标签: java jar

我正在使用JAR文件中的一些类,它们属于一个包(com.abc.xyz)。

我写的类也属于该包,但我无法将我的文件捆绑到该JAR文件中。是否可以将属于同一个包的类分布在多个JAR文件中?

5 个答案:

答案 0 :(得分:16)

默认情况下,绝对。

但是,如果您想要以确保来自特定包的类仅从 文件中加载,则可以add that information to the manifest

答案 1 :(得分:7)

除非JAR包含sealed,否则这是非常可行的。

答案 2 :(得分:4)

我不明白为什么不可能。重要的是这些类在类路径中。

答案 3 :(得分:3)

这可能不是你想要做的事情。如果它在同一个包装中,它是否应该打包在一起(我相信Jigsaw打算允许在模块之间拆分包装,但那是一个不同的水壶)。

如果任何一个包在清单中标记为密封,则可以阻止它。我建议将整个罐子标记为密封的。

如果类上有不同的签名者,并且类由同一个类加载器加载,也可以阻止它。

如果使用不同的类加载器加载类,虽然“命名空间”将是相同的,但实际上您不会获得包(以及受保护的相关部分)访问。

答案 4 :(得分:0)

如果你想扩展第三方图书馆的功能但是它们不是开放式的和/或你没有来源,有时你必须这样做