Differenza tra Java SE / EE / ME?


326

Quale dovrei installare quando voglio iniziare ad imparare Java? Inizierò con alcune nozioni di base, quindi scriverò semplici programmi che creano file, directory, modificano file XML e così via, niente di troppo complesso per ora.

Immagino che Java SE (Standard Edition) sia quello che dovrei installare sul mio desktop di Windows 7. Ho già Komodo IDE che userò per scrivere il codice Java.


6
Dovresti iniziare con l'apprendimento di Java SE. Java EE può essere un po 'sconcertante all'inizio. Quando sei pronto, dai un'occhiata a questa eccellente pagina panoramica di Java EE 7 per iniziare. Soprattutto il tutorial Java EE 7 Oracle è un buon punto di partenza.
Dexter Meyers,

Risposte:


545

Java SE = Edizione standard . Questa è la piattaforma di programmazione Java principale. Contiene tutte le librerie e le API che qualsiasi programmatore Java dovrebbe imparare (java.lang, java.io, java.math, java.net, java.util, ecc ...).

Java EE = Enterprise Edition . Da Wikipedia:

La piattaforma Java (Enterprise Edition) differisce dalla piattaforma Java Standard Edition (Java SE) in quanto aggiunge librerie che forniscono funzionalità per distribuire software Java multilivello, tollerante ai guasti, basato principalmente su componenti modulari in esecuzione su un server delle applicazioni .

In altre parole, se la tua applicazione richiede un sistema distribuito su larga scala, dovresti considerare l'utilizzo di Java EE. Basato su Java SE, fornisce librerie per l'accesso al database (JDBC, JPA), invocazione di metodi remoti (RMI), messaggistica ( JMS ), servizi Web, elaborazione XML e definisce API standard per Java Enterprise, servlet, portlet, Java Pagine del server, ecc ...

Java ME = Micro Edition . Questa è la piattaforma per lo sviluppo di applicazioni per dispositivi mobili e sistemi integrati come set-top box. Java ME fornisce un sottoinsieme delle funzionalità di Java SE, ma introduce anche librerie specifiche per i dispositivi mobili. Poiché Java ME si basa su una versione precedente di Java SE, alcune delle nuove funzionalità del linguaggio introdotte in Java 1.5 (ad es. Generics) non sono disponibili.

Se non conosci Java, inizia sicuramente con Java SE.


157
Non sarei d'accordo con la raccomandazione di un IDE a qualcuno che non ha mai codificato Java prima. Scrivine alcuni utilizzando prima la riga di comando in modo da poter avere una possibilità di combattimento per capire cosa significa CLASSPATH. Se usi Eclipse prima di capire Java, queste sono due grandi cose di cui ignori.
duffymo,

47
@duffymo IMO è in realtà una buona idea avere una raccomandazione IDE, perché la codifica con un editor di testo semplice non offre alcun vantaggio nell'apprendimento di una nuova lingua, avere intellisense e completamento automatico è un aiuto inestimabile per un programmatore che già conosce altri ecosistemi per diventare familiarità con il nuovo ambiente.
Felice Pollano,

4
@duffymo Lo sto ancora leggendo dopo 5 anni quando Google mi ha portato qui, quindi credo che abbia ancora senso iniziare una discussione. In questo caso specifico, però, concordo con i tuoi argomenti sugli IDE.
qutab,

8
Non vedo nulla di male nel discutere questioni difficili e senza tempo.
LegendLength

2
È specifica solo l'edizione JDK? o JRE e JVM sono diversi per SE ed EE?
Arun SR,

68

Ecco alcune differenze in termini di API

Java SE include ha le seguenti API e molte altre

  • applet
  • AWT
  • rmi
  • JDBC
  • swing
  • collezioni
  • associazione xml
  • JavaFX (unito a Java SE 8)
  • API di streaming di Java 8 Collections
  • API Java 9 Reactive Streams
  • API HTTP / 2 Java 9

Java EE include le seguenti API e molte altre

  • servlet
  • websocket
  • volti di Java
  • iniezione di dipendenza
  • ejb
  • persistenza
  • transazione
  • JMS
  • api batch

Java ME include le seguenti API e molte altre

  • Messaggistica wireless
  • Servizi Web Java ME
  • API Security and Trust Services
  • Posizione
  • API XML mobile

Spero che questo ti aiuti.


1
Come presentato, ciò significa che ciò che è in SE non è incluso in EE? E cosa c'è in ME non in EE? Sembra che se si desidera la messaggistica wireless, ad esempio, sia necessario disporre di ME e non sia disponibile in EE. È corretto?
ejbytes

A partire da Java EE versione 6, anche l'API Collections fa parte di Java EE?
Sriyank Siddhartha il

52

Java SE è la base su cui è costruito Java EE.

Java ME è un sottoinsieme di SE per dispositivi mobili.

Quindi dovresti installare Java SE per il tuo progetto.


36

Secondo la documentazione di Oracle , in realtà ci sono quattro piattaforme Java:

  • Piattaforma Java, Standard Edition (Java SE)
  • Java Platform, Enterprise Edition (Java EE)
  • Piattaforma Java, Micro Edition (Java ME)
  • JavaFX

Java SE è per lo sviluppo di applicazioni desktop ed è la base per lo sviluppo in linguaggio Java. Comprende strumenti di sviluppo, tecnologie di distribuzione e altre librerie di classi e toolkit utilizzati nelle applicazioni Java. Java EE è basato su Java SE e viene utilizzato per lo sviluppo di applicazioni Web e applicazioni aziendali su larga scala. Java ME è un sottoinsieme di Java SE. Fornisce un'API e una macchina virtuale di dimensioni ridotte per l'esecuzione di applicazioni Java su piccoli dispositivi. JavaFX è una piattaforma per la creazione di ricche applicazioni Internet utilizzando un'API di interfaccia utente leggera. È una recente aggiunta alla famiglia di piattaforme Java.

A rigor di termini, queste piattaforme sono specifiche; sono norme, non software. La piattaforma Java, Standard Edition Development Kit (JDK) è un'implementazione ufficiale della specifica Java SE, fornita da Oracle. Esistono anche altre implementazioni, come OpenJDK e IBM J9.

Le persone che non conoscono Java scaricano un JDK per la loro piattaforma e il loro sistema operativo (il JDK di Oracle è disponibile per il download qui .)


1
È vero per Java 6. La documentazione di Java 7 afferma che ci sono 3 piattaforme e JavaFX fa parte di Java SE.
Javatar,

Java SE è destinato allo sviluppo di applicazioni desktop Java EE è utilizzato per lo sviluppo di applicazioni Web e applicazioni aziendali su larga scala.
AyukNayr,

20

Mentre mi imbatto in questa domanda, ho trovato le informazioni fornite nel tutorial di Oracle molto complete e vale la pena condividere:

Le piattaforme di linguaggio di programmazione Java

Esistono quattro piattaforme del linguaggio di programmazione Java:

  • Piattaforma Java, Standard Edition (Java SE)

  • Java Platform, Enterprise Edition (Java EE)

  • Piattaforma Java, Micro Edition (Java ME)

  • JavaFX

Tutte le piattaforme Java sono costituite da una Java Virtual Machine (VM) e da un'applicazione di programmazione (API). Java Virtual Machine è un programma, per una particolare piattaforma hardware e software, che esegue applicazioni con tecnologia Java. Un'API è una raccolta di componenti software che è possibile utilizzare per creare altri componenti software o applicazioni. Ogni piattaforma Java fornisce una macchina virtuale e un'API, e ciò consente alle applicazioni scritte per quella piattaforma di funzionare su qualsiasi sistema compatibile con tutti i vantaggi del linguaggio di programmazione Java: indipendenza della piattaforma, potenza, stabilità, facilità di sviluppo e sicurezza.

Java SE

Quando la maggior parte delle persone pensa al linguaggio di programmazione Java, pensa all'API Java SE. L'API di Java SE fornisce le funzionalità principali del linguaggio di programmazione Java. Definisce tutto, dai tipi e dagli oggetti di base del linguaggio di programmazione Java alle classi di alto livello utilizzate per reti, sicurezza, accesso al database, sviluppo dell'interfaccia utente grafica (GUI) e analisi XML.

Oltre all'API principale, la piattaforma Java SE è composta da una macchina virtuale, strumenti di sviluppo, tecnologie di distribuzione e altre librerie di classi e toolkit comunemente utilizzati nelle applicazioni della tecnologia Java.

Java EE

La piattaforma Java EE è costruita sulla piattaforma Java SE. La piattaforma Java EE fornisce un'API e un ambiente 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 del linguaggio di programmazione Java su piccoli dispositivi, come i telefoni cellulari. L'API è un sottoinsieme dell'API Java SE, insieme a librerie di classi speciali utili per lo sviluppo di applicazioni di dispositivi di piccole dimensioni. Le applicazioni Java ME sono spesso client dei servizi della piattaforma Java EE.

JavaFX

JavaFX è una piattaforma per la creazione di ricche applicazioni Internet utilizzando un'API di interfaccia utente leggera. Le applicazioni JavaFX utilizzano motori multimediali e grafici con accelerazione hardware per sfruttare i client ad alte prestazioni e un aspetto moderno nonché API di alto livello per la connessione a origini dati in rete. Le applicazioni JavaFX possono essere client dei servizi della piattaforma EE Java.


1
copiato dal sito dell'oracolo :)
Irfan Nasim

1
@IrfanNasim So che è stato copiato da Oracle e ho detto che !! hai letto la risposta dall'alto ?! E sai che in SO quando fornisci un link devi anche copiare le informazioni importanti, perché una volta che il link non è aggiornato o non funziona, le persone potrebbero ancora leggere ciò che era nel link !! È strano che tu abbia 198 rappresentanti e non conosci ancora le regole !!
Tarik,

13

Immagino che Java SE (Standard Edition) sia quello che dovrei installare sul mio desktop di Windows 7

Sì certo . Java SE è il migliore per iniziare. A proposito, devi imparare le basi di Java. Ciò significa che devi imparare alcune delle librerie e delle API in Java SE.

Differenza tra le edizioni della piattaforma Java:

Java Micro Edition (Java ME):

  • Ambiente di runtime altamente ottimizzato.
  • Prodotti di consumo target ( cercapersone , telefoni cellulari).
  • Java ME era precedentemente noto come Java 2 Platform, Micro Edition o J2ME.

Java Standard Edition (Java SE):

Strumenti Java, runtime e API per gli sviluppatori che scrivono, distribuiscono ed eseguono applet e applicazioni. Java SE era precedentemente noto come Java 2 Platform, Standard Edition o J2SE. (tutti / principianti a partire da questo)

Java Enterprise Edition (Java EE):

Targeting per applicazioni lato server di classe enterprise . Java EE era precedentemente noto come Java 2 Platform, Enterprise Edition o J2EE.

Un'altra domanda duplicata per questa domanda.


Infine, riguardo a J .. confusione

JVM (Java Virtual Machine):

JVM fa parte sia di JDK che di JRE che traduce i codici byte Java e li esegue come codice nativo sul computer client.

JRE (Java Runtime Environment):

È l'ambiente fornito per l'esecuzione dei programmi java. Esso contiene una JVM, librerie di classi, e altri file di supporto. Non contiene strumenti di sviluppo come compilatore, debugger e così via.

JDK (Java Development Kit):

JDK contiene gli strumenti necessari per sviluppare i programmi java (javac, java, javadoc, appletviewer, jdb, javap, rmic, ...) e JRE per eseguire il programma.

Java SDK (Java Software Development Kit):

L'SDK comprende un JDK e software aggiuntivo, quali server applicazioni, debugger e documentazione.

Java SE:

La piattaforma Java, Standard Edition (Java SE) consente di sviluppare e distribuire applicazioni Java su desktop e server (come SDK).

J2SE, J2ME, J2EE

Qualsiasi edizione Java da 1.2 a 1.5

Maggiori informazioni su questi argomenti:


11

Sì, Java SE è il punto di partenza. Tutte le attività menzionate possono essere gestite con esso.

Java ME è Mobile Edition ed EE è Enterprise Edition; si tratta di versioni specializzate / estese della Standard Edition.


7

Sì, dovresti iniziare con Java SE. Java EE è per le applicazioni Web e Java ME è per le applicazioni mobili, entrambe basate su SE.


6

Java SE (Standard Edition) è destinato alla creazione di app desktop.

Java ME (Micro Edition) è per vecchi dispositivi mobili.

Java EE (Enterprise Edition) è destinato allo sviluppo di applicazioni basate sul Web.


2

Se fossi in te, installerei Java SE SDK. Una volta installato, assicurati di avere impostato la variabile d'ambiente JAVA_HOME e aggiungi la directory% JAVA_HOME% \ bin al tuo percorso.


1

Gli sviluppatori utilizzano diverse edizioni della piattaforma Java per creare programmi Java in esecuzione su computer desktop, browser Web, server Web, dispositivi di informazione mobili (come telefoni cellulari) e dispositivi incorporati (come set-top box televisivi).

Java Platform, Standard Edition (Java SE): la piattaforma Java per lo sviluppo di applicazioni, che sono programmi autonomi eseguiti su desktop. Java SE viene anche utilizzato per sviluppare applet, che sono programmi eseguiti nei browser Web.

Java Platform, Enterprise Edition (Java EE): la piattaforma Java per lo sviluppo di applicazioni e servlet orientati all'azienda, che sono programmi server conformi all'API Servlet di Java EE. Java EE è basato su Java SE.

Piattaforma Java, Micro Edition (Java ME): La piattaforma Java per lo sviluppo di MIDlet, che sono programmi eseguiti su dispositivi mobili di informazione, e Xlet, che sono programmi eseguiti su dispositivi integrati.


0

SE (JDK) ha tutte le librerie di cui avrai mai bisogno per tagliare i denti su Java. Raccomando l'IDE di Netbeans in quanto viene fornito in bundle con SE (JDK) direttamente da Oracle. Non dimenticare di impostare le variabili "path" e "classpath" soprattutto se stai per provare la riga di comando. Con un sistema a 64 bit inserire il "Percorso di sistema" ad es. C: \ Programmi (x86) \ Java \ jdk1.7.0 prima della C: \ Windows \ system32; per indirizzare il sistema sul tuo JDK.

spero che questo ti aiuti.


0

Java SE è utilizzato per le applicazioni desktop e le semplici funzioni principali. Java EE è utilizzato per desktop, ma anche per lo sviluppo web, la rete e cose avanzate.


0

EE: - Enterprise Edition: - Questa edizione Java è progettata in modo specifico per le applicazioni / le attività aziendali in cui dobbiamo gestire diversi server con importanza per la sicurezza, la gestione delle transazioni, ecc.

SE: - Edizione standard: - Questa edizione è per applicazioni standard.

ME: - Micro Edition: - Questa edizione java è specificamente progettata per piattaforme di telefonia mobile. Laddove viene data maggiore importanza alla gestione della memoria in quanto vi sono risorse di memoria limitate nei cellulari.

Quindi in pratica JAVA ha diverse edizioni per esigenze diverse.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.