0

我在 Sun 官方文档(或 Sun 在线教程)中阅读了有关 jar 档案的点命名的信息。是否曾鼓励将 jar 工件命名为com.company.project.smallestdistributable.jar

4

1 回答 1

1

通常这种情况不时发生,因为点命名约定可以模拟系统中的命名空间,而该系统并不真正处理命名空间。

在您的情况下,您将模拟文件系统中的“com.company.project”命名空间,分辨率为“smallestdistributable.jar”。

我读过的任何 Java 文档(大约从 1.2 开始)都没有建议对 JAR 文件使用这样的命名系统。虽然人们无法确定为什么它从未被推荐,但可以猜测。早期的系统并没有将虚线扩展仅仅视为名称的一部分,但有时将它们视为分类器。在最早的系统中,名称和分类器对允许的字符数有非常严格的限制,文件系统只允许使用 [NAME].[CLASSIFIER] 的模式。包含额外句点的 JAR 文件(顺便说一下,它是 3 个字符,因为如果您希望文件名可移植,那是文件系统上可用的最长分类器和最短分类器)会破坏文件系统对文件的理解,所以

com.company.project.smallestdistributable.jar

将被视为

file: com
extension: company.project.smallestdistributable.jar

但实际上它甚至不会走那么远,因为扩展不能有扩展。

我见过一些较新的项目,它们与 [8].[3] 无关 命名约定将命名空间添加到 jar 文件名中,但这似乎是一个新想法,而不是在这些开发领域之外明确推广的东西。

于 2012-06-21T17:45:17.533 回答