¿Qué hay dentro del paquete com.sun?

Al igual que javax contiene las extensiones, ¿qué se supone que contenga el paquete com.sun?

Contiene las implementaciones de referencia de Sun Oracle de las API estándar de Java (EE). Entre otros, Mojarra (la implementación JSF de referencia de Oracle) y Glassfish (la implementación Java EE de referencia de Oracle) usan este paquete. Es preferible no utilizar esas clases directamente en su código, ya que haría que su código fuera ajustado a la implementación. La encoding en contra de la API java(x) directamente le permite cambiar la implementación sin cambiar su código (por ejemplo, MyFaces en lugar de Mojarra y JBoss AS en lugar de Glassfish).

Tenga en cuenta que el paquete com.sun.* No se debe confundir con el paquete sun.* Que son las clases internas detrás de Oracle JRE que no debe importar / usar en absoluto en su código ya que haría que su código sea ajustado al JRE. /versión. El paquete que no usa sun.* Le permite ejecutar su código en todas las demás implementaciones de JRE (OpenJDK, GCJ, etc.).

Paquetes para uso interno a los que se supone que no debe tener acceso directamente. Se pueden cambiar o eliminar en cualquier versión de Java. Puede encontrar la fuente para todos los paquetes sun. * Y com.sun. * En OpenJDK.

Hay muchos lugares que usan paquetes com.sun (algunos de los cuales se mencionan en otras respuestas). Esta respuesta aborda específicamente el uso de com.sun dentro de JavaFX. JavaFX es una biblioteca de UI que es parte de OpenJDK .

Gran parte de la implementación de JavaFX está en clases com.sun . Cuando JavaFX fue de origen abierto, los desarrolladores de JavaFX hicieron el siguiente comentario con respecto al uso de clases com.sun dentro de JavaFX:

Como siempre, la API no pública (o más bien, la API no compatible, es decir, cualquier elemento que no esté en el espacio de nombres com.sun.* como com.sun.* ) No se puede usar de versión en versión. Pero para aquellos de ustedes que se preguntan cómo funcionan las cosas, hay algo muy importante enterrado en los paquetes incompatibles, y para aquellos que quieran hackear realmente OpenJFX, esto será aún más interesante.