Java Platform, Standard Edition
La J2SE (Java2 Platform, Standard Edition) è una piattaforma software ampiamente utilizzata per la programmazione in linguaggio Java. E' la piattaforma Java utilizzata per distribuire applicazioni portatili per uso generale. In termini pratici, Java SE consiste di una macchina virtuale (Java Virtual Machine), che deve essere usata per eseguire programmi Java, insieme ad una serie di librerie (o "pacchetti") necessari per consentire l'uso di file system, reti, interfacce grafiche e così via, all'interno di tali programmi.
Descrizione
La Java SE era conosciuta come Java 2 Platform, Standard Edition o J2SE dalla versione 1.2 fino alla versione 1.5. La sigla "SE" viene utilizzata per distinguere la piattaforma di base della versione Enterprise Edition di Java EE e Java Micro Edition ME. Il "2" è stato originariamente destinato a sottolineare i grandi cambiamenti introdotti nella versione 1.2, ma è stato rimosso nella versione 1.6. La convenzione di denominazione è stata cambiata più volte nel corso della storia delle versioni Java. A partire da J2SE 1.4 (Merlin).
La piattaforma Java Enterprise Edition (Java EE) è una specifica correlata che comprende tutte le classi in Java SE, oltre ad un numero di classi che sono più utili per i programmi che girano su server di postazioni di lavoro.
La piattaforma Java Micro Edition (Java ME) è una specifica correlata che ha lo scopo di fornire una raccolta certificata di API per lo sviluppo software di piccoli dispositivi con risorse limitate, come i telefoni cellulari.
La Java Runtime Environment (JRE) e Java Development Kit (JDK) sono i file effettivi che vengono scaricati e installati su un computer rispettivamente per eseguire e sviluppare programmi Java.
La J2SE è stata organizzata in due parti fondamentali:
- Core Java
- Desktop Java
Core Java è la parte che contiene le API fondamentali del linguaggio di programmazione, mentre Desktop Java è utilizzata per creare GUI di applicazioni o Applet.
Attualmente le versioni principali della J2SE sono tre:
- J2SE 6 ( 1.6.0 )
- J2SE 1.5.0
- J2SE 1.4.2
Librerie
- Le librerie standard
Le librerie standard mirano ad includere le necessità più comuni per il programmatore. Fra le più significative si possono citare
- la possibilità di costruire GUI (interfacce grafiche) con strumenti standard e non proprietari, utilizzando i package java.awt e javax.swing;
- la possibilità di creare applicazioni multi-threaded, ovvero che svolgono in modo concorrente molteplici attività;
- il supporto per la riflessione, ovvero la capacità di un programma di agire sulla propria struttura e di utilizzare classi caricate dinamicamente dall'esterno.
Fra gli argomenti che depongono spesso a favore di Java nella scelta del linguaggio di implementazione di un progetto software moderno, inoltre, si deve certamente contare la vastità delle librerie standard, che in particolare contribuiscono a renderlo altamente integrabile con altre tecnologie. Alcuni esempi delle funzionalità incluse tra le librerie standard di Java sono:
- accesso ai database tramite JDBC e ai DBMS con driver ODBC tramite il bridge JDBC-ODBC
- manipolazione documenti XML
- dialogo con piattaforme CORBA
- potenti strumenti per la programmazione lato server nel contesto Web
- supporto nativo per gran parte dei protocolli della famiglia IP, vedi ad esempio il Socket Java
- supporto per le applicazioni multimediali, streaming audio e video.
La vastità delle librerie standard è tale da renderne praticamente impossibile la padronanza "a memoria"; è dunque necessario avere a disposizione la documentazione delle API, disponibile in linea sul sito ufficiale[1] o scaricabile sul computer sotto forma di archivio compresso (ad esempio, dalla pagina di archivio della Sun dedicata a Java[2]).
- Estensioni
Oltre alle librerie standard, il programmatore può fare affidamento su estensioni e package opzionali, scaricabili liberamente e facoltativamente dal sito web della Oracle dedicato a Java.
Le estensioni comprendono:
- GeoTools Libreria per il trattamento di dati geografici
- Servlet
- EJB Enterprise JavaBeans
- JSP JavaServer Pages
- JSF Java Server Faces
- JDO Java Data Objects
- JMS Java Message Service
- JAF JavaBeans Activation Framework
- JavaMail
- JNI Java Native Interface
- JNDI Java Naming and Directory Interface
- JSML Java Speech Grammar Specification
- JDBC Java Database Connectivity
- JAIN Java Integrated Networks
- JDMK Java Dynamic Management Kit
- Jini Java Intelligent Network Infrastructure
- Jiro Java Interface for Regular Objects
- JXTA sigla che sta per "juxtapose" (porre accanto)
- JavaSpaces
- JMI Java Metadata Interface
- JMX Java Management Extension
- JAXB Java Architecture for XML Binding
- JAXP Java API for XML Processing
- SAAJ SOAP with Attachments API for Java
- JAX-RPC Java API for XML-based RPC
- JAXR Java API for XML Registries
- Java 3D Java 3D API
Note
- ^ API Specifications, su java.sun.com. URL consultato il 16 giugno 2011.
- ^ Archive: Java[tm] Technology Products Download, su java.sun.com. URL consultato il 16 giugno 2011.