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 e unpack200 per l'imballaggio e il disimballaggio del file "pack200" per l'implementazione web.
  • I orbd , rmid , rmiregistry e tnameserv 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 e jarsigner
  • Strumenti di sviluppo come:
    • appletviewer per l'esecuzione di applet
    • idlj il compilatore idlj 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 e wsimport per JAX-WS
  • Strumenti diagnostici come:
    • jdb il debugger Java di base
    • jmap e jhat 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 e jps 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.


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:

  1. 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.

  2. 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:

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:



Modified text is an extract of the original Stack Overflow Documentation
Autorizzato sotto CC BY-SA 3.0
Non affiliato con Stack Overflow