Java SE
# Java SE

Java Platform, Standard Edition o Java SE (conocido anteriormente hasta la versión 5.0 como Plataforma Java 2, Standard Edition o J2SE), es una colección de API del lenguaje de programación Java útiles para muchos programas de la Plataforma Java. La Plataforma Java 2, Enterprise Edition incluye todas las clases en el Java SE, además de algunas de las cuales son útiles para programas que se ejecutan en servidores sobre workstations.

Comenzando con la versión J2SE 1.4 (Merlin), la plataforma Java SE ha sido desarrollada bajo la supervisión del Java Community Process. JSR 59 la especificación para J2SE 1.4 y JSR 176 especificó J2SE 5.0 (Tiger). En 2006, Java SE 6 (Mustang) está siendo desarrollada bajo el JSR 270.

Lo siguiente son descripciones de algunos de los principales paquetes Java SE.

## Paquetes de propósito especial

### java.applet

Creado para soportar la creación de applet Java, el paquete java.applet permite a las aplicaciones ser descargadas sobre una red y ejecutarse dentro de una sandbox. Las restricciones de seguridad son impuestas fácilmente en la sandbox. Un desarrollador, por ejemplo, puede aplicar una firma digital a un applet, en consecuencia etiquetándola como segura. Haciéndolo permite al usuario conceder permiso al applet para realizar operaciones restringidas (tales como acceder al disco duro local), y elimina alguna o todas las restricciones de la sandbox. Los certificados digitales son emitidos por agencias como Thawte o Entrust.

### JAVA.BEANS

Incluidos en el paquete java.beans hay varias clases para desarrollar y manipular beans, componentes reutilizables definidos por la arquitectura JavaBeans. La arquitectura suministra mecanismos para manipular propiedades de componentes y lanzar eventos cuando esas propiedades cambian.

La mayoría de las API en java.beans están pensadas para su uso en herramientas de edición de beans, en la cual los beans puedan combinarse, personalizarse y manipularse. Un tipo de editor bean es el diseñador GUI en un entorno de desarrollo integrado(IDE).

### java.awt

La Abstract Window Toolkit contiene rutinas para soportar operaciones básicas GUI y utiliza ventanas básicas desde el sistema nativo subyacente. Muchas implementaciones independientes de la API Java implementan todo excepto AWT, el cual no es usado por la mayoría de las aplicaciones de lado de servidor. Este paquete también contiene la API de gráficos Java 2D.

### java.rmi

El paquete java.rmi suministra invocación a métodos remotos Java para soportar llamadas a procedimientos remotos entre dos aplicaciones Java que se ejecutan en diferentes JVM. Esto es esencial para tener en cuenta en la certificación

### java.security

Soporte para seguridad, incluyendo el algoritmo de resumen de mensaje, está incluido en el paquete java.security.

### java.sql

Una implementación de la API JDBC (usada para acceder a bases de datos SQL) se agrupa en el paquete java.sql.

### javax.rmi

suministra el soporte para la comunicación remota entre aplicaciones, usando el protocolo RMI sobre IIOP. Este protocolo combina características de RMI y CORBA.

### org.omg.CORBA

Suministra el soporte para comunicación remota entre aplicaciones usando general inter ORB protocol y soporta otras características de common object request broker architecture. Igual que RMI y RMI-IIOP, este paquete es para llamar métodos remotos de objetos en otras máquinas virtuales (normalmente por la red). De todas las posibilidades de comunicación CORBA es la más portable entre varios lenguajes. Sin embargo es también un poco difícil de comprender.

### javax.swing

Swing es una colección de rutinas que se construyen sobre java.awt para suministrar un toolkit de widgets independiente de plataforma. Swing usa las rutinas de dibujado 2D para renderizar los componentes de interfaz de usuario en lugar de confiar en el soporte GUI nativo subyacente del Sistema operativo.

Swing es un sistema muy rico por sí mismo, soportando pluggable looks and feels (PLAFs) para que los controles(widgets) en la GUI puedan imitar a aquellos del sistema nativo subyacente. Los patrones de diseño impregnan el sistema, especialmente una modificación del patrón modelo-vista-controlador, el cual afloja el acoplamiento entre función y apariencia. Una inconsistencia es que (para J2SE 1.3) las fuentes son dibujadas por el sistema nativo subyacente, limitando la portabilidad de texto. Mejoras, tales como usar fuentes de mapas de bits, existen. En general, las layouts(disposiciones de elementos) se usan y mantienen los elementos dentro de una GUI consistente a través de distintas plataformas.

### javax.swing.text.html.parser

Suministra el parser de HTML tolerante a errores que se usa para escribir varios navegadores web y web bots.

