在JRE中,sun的内部包带有两个顶级域(sun和com)作为前缀。例如,
com.sun.security.jgss
sun.security.jgss在我看来,他们选择哪个前缀是相当随机的。我很好奇Sun在这方面使用了什么规则。
发布于 2009-08-26 00:37:08
"com.sun“约定是更可取的格式,因为它遵循为命名Java包而建立的”命名约定“。
http://java.sun.com/docs/codeconv/html/CodeConventions.doc8.html
您应该使用唯一的公司或个人网站URL作为包中的前几个单词,以保证名称空间中的唯一性。以"sun“开头的那些可能并不打算暴露在外部世界。
发布于 2009-08-26 09:09:36
不是这个问题的答案,但请注意,您不应该在程序中直接使用'sun‘或'com.sun’包。
请参阅Why Developers Should Not Write Programs That Call 'sun' Packages
这些包不是标准Java库的公共API的一部分,使用它们可能会使您的程序与未来的Java版本或Sun实现之外的Java实现不兼容(还有其他供应商的几个实现,包括Apple、IBM和HP)。
发布于 2009-08-26 01:44:37
如果你看一眼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中支持的接口。
*从Apache.下载org.apache.xalan类
https://stackoverflow.com/questions/1331762
复制相似问题