代码之家  ›  专栏  ›  技术社区  ›  ZZ Coder

Sun的Java包命名约定:Sun vs.com.Sun

  •  9
  • ZZ Coder  · 技术社区  · 17 年前

    在JRE中,Sun的内部包以两个顶级域(Sun和com)作为前缀。例如

    com.sun.security.jgss
    sun.security.jgss
    

    对我来说,他们选择哪个前缀似乎很随机。我很好奇Sun在这方面使用了什么规则。

    3 回复  |  直到 17 年前
        1
  •  10
  •   Jesper    17 年前

    这不是问题的答案,但请注意,您不应在程序中直接使用“sun”或“com.sun”软件包。

    看见 Why Developers Should Not Write Programs That Call 'sun' Packages

        2
  •  7
  •   Andy White    17 年前

    “com.sun”约定是更可取的格式,因为它遵循为命名Java包而建立的“命名约定”。

    http://java.sun.com/docs/codeconv/html/CodeConventions.doc8.html

    您应该使用您独特的公司或个人网站URL作为包中的前几个字,以保证名称空间中的唯一性。那些以“太阳”开头的可能不是为了暴露在外面。

        3
  •  1
  •   Ryan Fernandes    17 年前

    compatibility document for Java 5 您会注意到还有其他原因:

    Apache—org.Apache类从未受到J2SE API的支持,但被javax.xml包使用,它已在5.0版本中迁移到**com.sun.**org.Apache.package.internal,以便它们不会与开发人员下载的最新版本的类发生冲突。
    任何依赖于作为J2SE版本一部分的org.apache类的应用程序必须执行以下操作之一才能在5.0中工作:
    *对应用程序进行编码,使其仅使用作为JAXP一部分的受支持接口。