在JRE中,Sun的内部软件包以2个顶级域名(sun和com)为前缀。例如,
com.sun.security.jgss
sun.security.jgss
对我来说,他们选择的前缀似乎很随机。我很好奇Sun为此采用了什么规则。
答案 0 :(得分:10)
不是问题的答案,但请注意,您不应直接在程序中使用“sun”或“com.sun”软件包。
请参阅Why Developers Should Not Write Programs That Call 'sun' Packages
这些包不是标准Java库的公共API的一部分,使用它们可能会使您的程序与Java的未来版本或除Sun实现之外的Java实现不兼容(并且其他供应商有多个实现,包括Apple,IBM和HP)。
答案 1 :(得分:7)
“com.sun”约定是更优选的格式,因为它遵循为命名Java包而建立的“命名约定”。
http://java.sun.com/docs/codeconv/html/CodeConventions.doc8.html
您应该使用您的唯一公司或个人网站URL作为包中的前几个单词,以保证名称空间中的唯一性。那些以“太阳”开头的人可能并不打算暴露在外面。
答案 2 :(得分:1)
如果你看一眼compatibility document for Java 5,你会注意到还有其他原因:
Apache - 从未受过J2SE API支持但由javax.xml包使用的org.apache类已在5.0中移动到** com.sun。** org.apache.package.internal以便他们不会与最近的开发者下载版本的课程发生冲突 依赖于作为J2SE版本一部分的org.apache类的任何应用程序必须执行以下操作之一才能在5.0中工作:
*对应用程序进行编码,使其仅使用作为JAXP一部分的受支持接口 *从Apache下载org.apache.xalan类。