就像javax包含扩展一样,什么是com.sun包应该包含?
答案 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。*包的源代码。