Java Language
Edizioni, versioni, rilasci e distribuzioni Java
Ricerca…
Differenze tra le distribuzioni Java SE JRE o Java SE JDK
Le versioni Sun / Oracle di Java SE sono disponibili in due forme: JRE e JDK. In termini semplici, i JRE supportano l'esecuzione di applicazioni Java e i JDK supportano anche lo sviluppo Java.
Java Runtime Environment
Le distribuzioni Java Runtime Environment o JRE sono costituite dall'insieme di librerie e strumenti necessari per eseguire e gestire le applicazioni Java. Gli strumenti in un tipico JRE moderno includono:
- Il comando
java
per l'esecuzione di un programma Java in una JVM (Java Virtual Machine) - Il comando
jjs
per l'esecuzione del motore JavaScript Nashorn. - Il comando
keytool
per manipolare i keystore Java. - Il comando
policytool
per la modifica delle politiche di sicurezza sandbox di sicurezza. - Gli strumenti
pack200
eunpack200
per l'imballaggio e il disimballaggio del file "pack200" per l'implementazione web. - I
orbd
,rmid
,rmiregistry
etnameserv
che supportano le applicazioni Java CORBA e RMI.
Gli installer di "Desktop JRE" includono un plugin Java adatto per alcuni browser web. Questo è volutamente lasciato fuori da "Server JRE" installers.linux syscall read benchmarku
Dall'aggiornamento 6 di Java 7 in poi, i programmi di installazione JRE hanno incluso JavaFX (versione 2.2 o successiva).
Kit di sviluppo Java
Una distribuzione Java Development Kit o JDK include gli strumenti JRE e strumenti aggiuntivi per lo sviluppo di software Java. Gli strumenti aggiuntivi includono in genere:
- Il comando
javac
, che compila il codice sorgente Java (".java") in file bytecode (".class"). - Gli strumenti per creare file JAR come
jar
ejarsigner
- Strumenti di sviluppo come:
-
appletviewer
per l'esecuzione di applet -
idlj
il compilatoreidlj
CORBA a Java -
javah
il generatore di stub JNI -
native2ascii
per la conversione del set di caratteri del codice sorgente Java -
schemagen
il generatore di schemi da Java a XML (parte di JAXB) -
serialver
genera una stringa di versione di serializzazione di oggetti Java. - gli strumenti di supporto
wsgen
ewsimport
per JAX-WS
-
- Strumenti diagnostici come:
-
jdb
il debugger Java di base -
jmap
ejhat
per il dumping e l'analisi di un heap Java. -
jstack
per ottenere un dump dello stack di thread. -
javap
per l'esame dei file ".class".
-
- Strumenti di gestione e monitoraggio delle applicazioni come:
-
jconsole
una console di gestione, -
jstat
,jstatd
,jinfo
ejps
per il monitoraggio dell'applicazione
-
Una tipica installazione Sun / Oracle JDK include anche un file ZIP con il codice sorgente delle librerie Java. Prima di Java 6, questo era l'unico codice sorgente Java disponibile pubblicamente.
Da Java 6 in poi, il codice sorgente completo per OpenJDK è disponibile per il download dal sito OpenJDK. Solitamente non è incluso nei pacchetti JDK (Linux), ma è disponibile come pacchetto separato.
Qual è la differenza tra Oracle Hotspot e OpenJDK
Ortogonale alla dicotomia JRE versus JDK, esistono due tipi di rilascio Java ampiamente disponibili:
- Le versioni di Hotspot Oracle sono quelle scaricate dai siti di download di Oracle.
- Le versioni di OpenJDK sono quelle che vengono create (in genere da provider di terze parti) dai repository di origine OpenJDK.
In termini funzionali, c'è poca differenza tra una versione di Hotspot e una versione di OpenJDK. Ci sono alcune funzionalità extra "enterprise" in Hotspot che i clienti Java (a pagamento) Oracle possono abilitare, ma a parte questo la tecnologia è presente sia in Hotspot che in OpenJDK.
Un altro vantaggio di Hotspot rispetto a OpenJDK è che le versioni di patch per Hotspot tendono ad essere disponibili un po 'prima. Ciò dipende anche da quanto agile sia il tuo provider OpenJDK; Ad esempio, quanto tempo impiega un team di build di una distribuzione Linux per preparare e QA una nuova build OpenJDK, e portarla nei loro repository pubblici.
Il rovescio della medaglia è che le versioni di Hotspot non sono disponibili dai repository di pacchetti per la maggior parte delle distribuzioni Linux. Ciò significa che mantenere il tuo software Java aggiornato su una macchina Linux di solito è più utile se usi Hotspot.
Differenze tra Java EE, Java SE, Java ME e JavaFX
La tecnologia Java è sia un linguaggio di programmazione che una piattaforma. Il linguaggio di programmazione Java è un linguaggio orientato agli oggetti di alto livello con una sintassi e uno stile particolari. Una piattaforma Java è un particolare ambiente in cui vengono eseguite le applicazioni del linguaggio di programmazione Java.
Ci sono diverse piattaforme Java. Molti sviluppatori, anche gli sviluppatori di linguaggi di programmazione Java di lunga data, non capiscono in che modo le diverse piattaforme si relazionano tra loro.
Le piattaforme Java Programming Language
Esistono quattro piattaforme del linguaggio di programmazione Java:
Piattaforma Java, Standard Edition (Java SE)
Piattaforma Java, Enterprise Edition (Java EE)
Piattaforma Java, Micro Edition (Java ME)
FX Java
Tutte le piattaforme Java sono costituite da una Java Virtual Machine (VM) e un'interfaccia di programmazione delle applicazioni (API). Java Virtual Machine è un programma, per una particolare piattaforma hardware e software, che esegue applicazioni di tecnologia Java. Un'API è una raccolta di componenti software che è possibile utilizzare per creare altri componenti o applicazioni software. Ogni piattaforma Java fornisce una macchina virtuale e un'API e questo consente alle applicazioni scritte per quella piattaforma di funzionare su qualsiasi sistema compatibile con tutti i vantaggi del linguaggio di programmazione Java: indipendenza dalla piattaforma, potenza, stabilità, facilità di sviluppo e sicurezza.
Java SE
Quando molte persone pensano al linguaggio di programmazione Java, pensano all'API Java SE. L'API di Java SE fornisce le funzionalità principali del linguaggio di programmazione Java. Definisce tutto, dai tipi e oggetti di base del linguaggio di programmazione Java alle classi di alto livello utilizzate per il networking, la sicurezza, l'accesso al database, lo sviluppo dell'interfaccia grafica utente (GUI) e l'analisi XML.
Oltre all'API di base, la piattaforma Java SE è composta da una macchina virtuale, strumenti di sviluppo, tecnologie di implementazione e altre librerie di classi e toolkit comunemente utilizzati nelle applicazioni di tecnologia Java.
Java EE
La piattaforma Java EE è costruita sulla piattaforma Java SE. La piattaforma Java EE fornisce un ambiente API e di runtime per lo sviluppo e l'esecuzione di applicazioni di rete su larga scala, multilivello, scalabili, affidabili e sicure.
Java ME
La piattaforma Java ME fornisce un'API e una macchina virtuale di dimensioni ridotte per l'esecuzione di applicazioni di linguaggio di programmazione Java su dispositivi di piccole dimensioni, come i telefoni cellulari. L'API è un sottoinsieme dell'API Java SE, insieme a librerie di classi speciali utili per lo sviluppo di applicazioni su dispositivi di piccole dimensioni. Le applicazioni Java ME sono spesso client dei servizi della piattaforma Java EE.
FX Java
La tecnologia Java FX è una piattaforma per la creazione di applicazioni Internet ricche scritte in Java FX ScriptTM. Java FX Script è un linguaggio dichiarativo con tipizzazione statica che viene compilato in bytecode con tecnologia Java, che può quindi essere eseguito su una VM Java. Le applicazioni scritte per la piattaforma Java FX possono includere e collegare classi di linguaggio di programmazione Java e possono essere clienti di servizi di piattaforma Java EE.
- Tratto dalla documentazione di Oracle
Versioni di Java SE
Storia della versione di SE Java
La seguente tabella fornisce la tempistica per le principali versioni significative della piattaforma Java SE.
Java SE Versione 1 | Nome in codice | Fine vita (gratis 2 ) | Data di rilascio |
---|---|---|---|
Java SE 9 (accesso anticipato) | Nessuna | futuro | 2017-07-27 (stimato) |
Java SE 8 | Nessuna | futuro | 2014/03/18 |
Java SE 7 | Delfino | 2015/04/14 | 2011-07-28 |
Java SE 6 | Mustang | 2013/04/16 | 2006-12-23 |
Java SE 5 | Tigre | 2009-11-04 | 2004-10-04 |
Java SE 1.4.2 | Mantide | prima del 2009-11-04 | 2003-06-26 |
Java SE 1.4.1 | Tramoggia / cavalletta | prima del 2009-11-04 | 2002/09/16 |
Java SE 1.4 | smeriglio | prima del 2009-11-04 | 2002/02/06 |
Java SE 1.3.1 | Coccinella | prima del 2009-11-04 | 2001-05-17 |
Java SE 1.3 | Gheppio | prima del 2009-11-04 | 2000/05/08 |
Java SE 1.2 | Terreno di gioco | prima del 2009-11-04 | 1998/12/08 |
Java SE 1.1 | sparkler | prima del 2009-11-04 | 1997/02/19 |
Java SE 1.0 | Quercia | prima del 2009-11-04 | 1996/01/21 |
Note:
I collegamenti sono alle copie online della documentazione relativa alle versioni sul sito Web di Oracle. La documentazione di molte versioni precedenti non è più online, anche se in genere può essere scaricata dagli Oracle Java Archives.
La maggior parte delle versioni storiche di Java SE ha superato le date ufficiali di "fine vita". Quando una versione di Java supera questo traguardo, Oracle smette di fornire aggiornamenti gratuiti per questo. Gli aggiornamenti sono ancora disponibili per i clienti con contratti di supporto.
Fonte:
- Date di rilascio di JDK di Roedy Green di Canadian Mind Products
Caratteristiche della versione Java SE
Versione Java SE | Mette in risalto |
---|---|
Java SE 8 | Espressioni lambda e flussi ispirati a MapReduce. Il motore Javascript di Nashorn. Annotazioni su tipi e annotazioni ripetute. Estensioni aritmetiche senza segno. Nuove API di data e ora. Librerie JNI collegate in modo statico. Launcher JavaFX. Rimozione di PermGen. |
Java SE 7 | String switch, try-with-resource , diamond ( <> ), miglioramenti letterali numerici e miglioramenti nella gestione delle eccezioni / rethrowing. Miglioramenti alla libreria di concorrenza. Supporto avanzato per i file system nativi. Timsort. Algoritmi crittografici ECC. Migliorato supporto per la grafica 2D (GPU). Annotazioni inseribili |
Java SE 6 | Miglioramenti significativi delle prestazioni alla piattaforma JVM e Swing. API di scripting language e motore di Mozilla Rhino Javascript. JDBC 4.0. API del compilatore. JAXB 2.0. Supporto dei servizi Web (JAX-WS) |
Java SE 5 | Generics, annotazioni, auto-boxing, classi enum , varargs, enhanced for loops e importazioni statiche. Specifica del modello di memoria Java. Miglioramenti dell'oscillazione e dell'RMI. Aggiunta del pacchetto java.util.concurrent.* E dello Scanner . |
Java SE 1.4 | La parola chiave assert . Classi di espressioni regolari. Eccezione concatenata. API NIO: I / O non bloccante, Buffer e Channel . java.util.logging.* API. API I / O immagine. XML integrato e XSLT (JAXP). Sicurezza integrata e crittografia (JCE, JSSE, JAAS). Java Web Start integrato. API delle preferenze. |
Java SE 1.3 | HotSpot JVM incluso. Integrazione CORBA / RMI. JNDI (Java Naming and Directory Interface). Struttura debugger (JPDA). API JavaSound. API proxy. |
Java SE 1.2 | La parola chiave strictfp . API Swing. Il plugin Java (per i browser Web). Interoperabilità CORBA. Quadro delle collezioni. |
Java SE 1.1 | Classi interne Riflessione. JDBC. RMI. Stream Unicode / di caratteri. Supporto per l'internazionalizzazione Revisione del modello di eventi AWT. JavaBeans. |
Fonte:
- Wikipedia: cronologia delle versioni di Java