什么是com.sun包内?

时间:2011-12-19 18:29:13

标签: java

就像javax包含扩展一样,什么是com.sun包应该包含?

3 个答案:

答案 0 :(得分:24)

它包含标准Java(EE)API的 Sun Oracle参考实现。其中Mojarra(Oracle的参考JSF实现)和Glassfish(Oracle的参考Java EE实现)使用此包。最好不要在代码中直接使用这些类,因为它会使代码紧密耦合到实现中。直接使用java(x) API编码可以在不更改代码的情况下更改实现(例如,MyFaces而不是Mojarra和JBoss AS而不是Glassfish)。

请注意,com.sun.*包不应与{JAR}背后的内容类混淆sun.*包,您应该在代码中absolutely not导入/使用它你的代码紧密耦合到JRE make / version。完全不使用sun.*包使您能够在所有其他JRE实现(OpenJDK,GCJ等)上运行代码。

答案 1 :(得分:1)

有许多地方使用com.sun个套餐(其中一些在其他答案中有提及)。这个答案只是专门解决了JavaFX中com.sun的使用问题。 JavaFX is a UI library which is part of OpenJDK

很多JavaFX implementation is in com.sun classes。当JavaFX是开源的时,following comment是JavaFX开发人员在JavaFX中使用com.sun类时所做的:

  

与往常一样,非公共API(或者更确切地说,不支持的API,意味着javafx名称空间中没有的任何内容,例如com.sun.*)不能依赖于从发行版到发行版。但是对于那些想知道事情是如何工作的人来说,有一些非常重要的东西埋藏在不受支持的软件包中,对于那些想要真正破解OpenJFX的人来说,这将是更大的兴趣。

答案 2 :(得分:0)

您不应该直接访问的内部使用的包。可以在任何版本的Java中更改或删除它们。您可以在OpenJDK中找到所有sun。*和com.sun。*包的源代码。