Différence entre Java SE / EE / ME?

326

Lequel dois-je installer lorsque je veux commencer à apprendre Java? Je vais commencer par quelques notions de base, je vais donc écrire des programmes simples qui créent des fichiers, des répertoires, éditent des fichiers XML et ainsi de suite, rien de trop complexe pour l'instant.

Je suppose que Java SE (Standard Edition) est celui que je devrais installer sur mon bureau Windows 7. J'ai déjà Komodo IDE que j'utiliserai pour écrire le code Java.

Richard Knop
la source
6
Vous devriez commencer par apprendre Java SE. Java EE peut être quelque peu déroutant au début. Lorsque vous êtes prêt, jetez un œil à cette excellente page de présentation de Java EE 7 pour commencer. En particulier, le didacticiel Oracle Java EE 7 est un bon point de départ.
dexter meyers

Réponses:

545

Java SE = édition standard . Ceci est la plate-forme de programmation Java de base. Il contient toutes les bibliothèques et API que tout programmeur Java doit apprendre (java.lang, java.io, java.math, java.net, java.util, etc ...).

Java EE = Enterprise Edition . De Wikipédia:

La plate-forme Java (Enterprise Edition) diffère de la plate-forme Java Standard Edition (Java SE) en ce qu'elle ajoute des bibliothèques qui fournissent des fonctionnalités pour déployer un logiciel Java multiniveau tolérant aux pannes, basé en grande partie sur des composants modulaires exécutés sur un serveur d'applications. .

En d'autres termes, si votre application nécessite un système distribué à très grande échelle, vous devriez envisager d'utiliser Java EE. Construit au-dessus de Java SE, il fournit des bibliothèques pour l'accès aux bases de données (JDBC, JPA), l'invocation de méthodes à distance (RMI), la messagerie ( JMS ), les services Web, le traitement XML et définit les API standard pour Enterprise JavaBeans, servlets, portlets, Java Pages serveur, etc ...

Java ME = Micro Edition . Il s'agit de la plate-forme de développement d'applications pour les appareils mobiles et les systèmes embarqués tels que les décodeurs. Java ME fournit un sous-ensemble des fonctionnalités de Java SE, mais présente également des bibliothèques spécifiques aux appareils mobiles. Étant donné que Java ME est basé sur une version antérieure de Java SE, certaines des nouvelles fonctionnalités de langage introduites dans Java 1.5 (par exemple les génériques) ne sont pas disponibles.

Si vous débutez avec Java, commencez certainement par Java SE.

6006604
la source
157
Je ne serais pas d'accord avec la recommandation d'un IDE à quelqu'un qui n'a jamais codé Java auparavant. Écrivez-en d'abord en utilisant la ligne de commande afin d'avoir une chance de vous battre pour comprendre ce que signifie CLASSPATH. Si vous utilisez Eclipse avant de comprendre Java, c'est deux grandes choses que vous ignorez.
duffymo
47
@duffymo IMO c'est en fait une bonne idée d'avoir une recommandation IDE, parce que le codage avec un éditeur de texte brut ne donne aucun avantage à apprendre une nouvelle langue, avoir l'intellisense et l'autocomplétion est une aide inestimable pour un programmeur connaissant déjà d'autres écosystèmes pour devenir familier avec le nouvel environnement.
Felice Pollano
4
@duffymo Je lis toujours ceci après 5 ans que Google m'a amené ici, donc je suppose qu'il y a encore un point pour commencer une discussion. Dans ce cas précis cependant, je suis d'accord avec vos arguments sur les IDE.
qutab
8
Je ne vois rien de mal à discuter de questions difficiles et intemporelles.
LegendLength
2
Seule l'édition JDK est-elle spécifique? ou JRE et JVM sont différents pour SE et EE?
Arun SR
68

Voici quelques différences en termes d'API

Java SE comprend les API suivantes et bien d'autres

  • applet
  • awt
  • rmi
  • jdbc
  • balançoire
  • collections
  • liaison xml
  • JavaFX (fusionné avec Java SE 8)
  • API de streaming de collections Java 8
  • API Java 9 Reactive Streams
  • API Java 9 HTTP / 2

Java EE comprend les API suivantes et bien d'autres

  • servlet
  • Websocket
  • visages de Java
  • injection de dépendance
  • ejb
  • persistance
  • transaction
  • jms
  • API de lot

Java ME comprend les API suivantes et bien d'autres

  • Messagerie sans fil
  • Services Web Java ME
  • API des services de sécurité et de confiance
  • Emplacement
  • API XML mobile

J'espère que cela t'aides.

tharindu_DG
la source
1
Tel que présenté, cela signifie-t-il que ce qui est en SE n'est pas inclus dans EE? Et ce qui est en moi n'est pas en EE? Il semble que si vous voulez la messagerie sans fil, par exemple, vous avez besoin de ME et qu'elle n'est pas disponible dans EE. Est-ce correct?
ejbytes
Depuis Java EE version 6, l'API Collections fait-elle également partie de Java EE?
Sriyank Siddhartha
52

Java SE est la base sur laquelle Java EE est construit.

Java ME est un sous-ensemble de SE pour les appareils mobiles.

Vous devez donc installer Java SE pour votre projet.

duffymo
la source
36

Selon la documentation d'Oracle , il existe en fait quatre plates-formes Java:

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

Java SE est destiné au développement d'applications de bureau et constitue la base du développement en langage Java. Il se compose d'outils de développement, de technologies de déploiement et d'autres bibliothèques de classes et boîtes à outils utilisées dans les applications Java. Java EE est construit sur Java SE, et il est utilisé pour développer des applications Web et des applications d'entreprise à grande échelle. Java ME est un sous-ensemble de Java SE. Il fournit une API et une machine virtuelle à faible encombrement pour exécuter des applications Java sur de petits appareils. JavaFX est une plate-forme pour créer des applications Internet riches en utilisant une API d'interface utilisateur légère. Il s'agit d'un ajout récent à la famille des plates-formes Java.

À strictement parler, ces plateformes sont des spécifications; ce sont des normes, pas des logiciels. La plate-forme Java, Kit de développement Standard Edition (JDK) est une implémentation officielle de la spécification Java SE, fournie par Oracle. Il existe également d'autres implémentations, comme OpenJDK et J9 d'IBM.

Les nouveaux utilisateurs de Java téléchargent un JDK pour leur plate-forme et leur système d'exploitation (le JDK d'Oracle est disponible en téléchargement ici .)

Jan Bodnar
la source
1
C'est vrai pour Java 6. La documentation de Java 7 indique qu'il existe 3 plates-formes et JavaFX fait partie de Java SE.
Javatar
Java SE est destiné au développement d'applications de bureau. Java EE est utilisé pour développer des applications Web et des applications d'entreprise à grande échelle.
AyukNayr
20

Alors que je tombe sur cette question, j'ai trouvé les informations fournies sur le tutoriel d'Oracle très complètes et méritant d'être partagées:

Les plates-formes du langage de programmation Java

Il existe quatre plates-formes du langage de programmation Java:

  • Java Platform, Standard Edition (Java SE)

  • Java Platform, Enterprise Edition (Java EE)

  • Plateforme Java, Micro Edition (Java ME)

  • JavaFX

Toutes les plates-formes Java se composent d'une machine virtuelle Java (VM) et d'une interface de programmation d'application (API). La machine virtuelle Java est un programme, pour une plate-forme matérielle et logicielle particulière, qui exécute des applications technologiques Java. Une API est un ensemble de composants logiciels que vous pouvez utiliser pour créer d'autres composants logiciels ou applications. Chaque plate-forme Java fournit une machine virtuelle et une API, ce qui permet aux applications écrites pour cette plate-forme de fonctionner sur tout système compatible avec tous les avantages du langage de programmation Java: indépendance de la plate-forme, puissance, stabilité, facilité de développement et Sécurité.

Java SE

Lorsque la plupart des gens pensent au langage de programmation Java, ils pensent à l'API Java SE. L'API de Java SE fournit les fonctionnalités de base du langage de programmation Java. Il définit tout, des types et objets de base du langage de programmation Java aux classes de haut niveau utilisées pour la mise en réseau, la sécurité, l'accès aux bases de données, le développement d'interfaces graphiques (GUI) et l'analyse XML.

En plus de l'API de base, la plate-forme Java SE se compose d'une machine virtuelle, d'outils de développement, de technologies de déploiement et d'autres bibliothèques de classes et boîtes à outils couramment utilisées dans les applications technologiques Java.

Java EE

La plate-forme Java EE est construite au-dessus de la plate-forme Java SE. La plate-forme Java EE fournit une API et un environnement d'exécution pour développer et exécuter des applications réseau à grande échelle, à plusieurs niveaux, évolutives, fiables et sécurisées.

Java ME

La plate-forme Java ME fournit une API et une machine virtuelle à faible encombrement pour exécuter des applications de langage de programmation Java sur de petits appareils, comme les téléphones mobiles. L'API est un sous-ensemble de l'API Java SE, ainsi que des bibliothèques de classes spéciales utiles pour le développement d'applications de petits appareils. Les applications Java ME sont souvent des clients des services de la plate-forme Java EE.

JavaFX

JavaFX est une plate-forme pour créer des applications Internet riches en utilisant une API d'interface utilisateur légère. Les applications JavaFX utilisent des moteurs graphiques et multimédias à accélération matérielle pour tirer parti de clients plus performants et d'une apparence moderne ainsi que d'API de haut niveau pour se connecter à des sources de données en réseau. Les applications JavaFX peuvent être des clients des services de la plate-forme Java EE.

Tarik
la source
1
copié depuis le site oracle :)
Irfan Nasim
1
@IrfanNasim Je sais que c'est copié d'Oracle et je l'ai mentionné !! avez-vous lu la réponse d'en haut?! Et savez-vous que dans SO, lorsque vous fournissez un lien, vous devez également copier les informations importantes, car une fois que le lien n'est pas à jour ou ne fonctionne pas, les gens peuvent toujours lire ce qui était dans le lien !! C'est bizarre que vous ayez 198 représentants et que vous ne connaissiez toujours pas les règles !!
Tarik
13

Je suppose que Java SE (Standard Edition) est celui que je devrais installer sur mon bureau Windows 7

Oui bien sûr . Java SE est le meilleur pour commencer. BTW, vous devez apprendre les bases de Java. Cela signifie que vous devez apprendre certaines des bibliothèques et API de Java SE.

Différence entre les éditions de la plate-forme Java:

Java Micro Edition (Java ME):

  • Environnement d'exécution hautement optimisé.
  • Cibler les produits de consommation ( téléavertisseurs , téléphones portables).
  • Java ME était auparavant connu sous le nom de Java 2 Platform, Micro Edition ou J2ME.

Java Standard Edition (Java SE):

Outils Java, runtimes et API pour les développeurs écrivant, déployant et exécutant des applets et des applications. Java SE était auparavant connu sous le nom de Java 2 Platform, Standard Edition ou J2SE. (tout le monde / débutants à partir de cela)

Java Enterprise Edition (Java EE):

Cible les applications côté serveur de classe entreprise . Java EE était auparavant connu sous le nom de Java 2 Platform, Enterprise Edition ou J2EE.

Une autre question en double pour cette question.


Enfin, à propos de J .. confusion

JVM (Java Virtual Machine):

JVM fait partie du JDK et du JRE qui traduit les codes d'octets Java et les exécute en tant que code natif sur la machine cliente.

JRE (Java Runtime Environment):

C'est l'environnement fourni pour que les programmes java soient exécutés. Il contient une machine virtuelle Java, des bibliothèques de classes et d'autres fichiers de prise en charge. Il ne contient aucun outil de développement tel que compilateur, débogueur, etc.

JDK (Java Development Kit):

JDK contient les outils nécessaires pour développer les programmes java (javac, java, javadoc, appletviewer, jdb, javap, rmic, ...) et JRE pour exécuter le programme.

Java SDK (Java Software Development Kit):

Le SDK comprend un JDK et des logiciels supplémentaires, tels que des serveurs d'applications, des débogueurs et de la documentation.

Java SE:

La plate-forme Java Standard Edition (Java SE) vous permet de développer et de déployer des applications Java sur des postes de travail et des serveurs (identiques au SDK).

J2SE, J2ME, J2EE

Toute édition Java de 1.2 à 1.5

En savoir plus sur ces sujets:

Blasanka
la source
11

Oui, Java SE est par où commencer. Toutes les tâches que vous mentionnez peuvent être traitées avec.

Java ME est l'édition mobile et EE est l'édition entreprise; ce sont des versions spécialisées / étendues de Standard Edition.

Péter Török
la source
7

Oui, vous devez commencer par Java SE. Java EE est destiné aux applications Web et Java ME est destiné aux applications mobiles, ces deux versions étant basées sur SE.

Michael
la source
6

Java SE (Standard Edition) sert à créer des applications de bureau.

Java ME (Micro Edition) est destiné aux anciens appareils mobiles.

Java EE (Enterprise Edition) est destiné au développement d'applications Web.

Grant Gubatan
la source
2

Si j'étais vous, j'installerais le SDK Java SE. Une fois installé, assurez-vous que la variable d'environnement JAVA_HOME est définie et ajoutez le répertoire% JAVA_HOME% \ bin à votre chemin.

Corv1nus
la source
1

Les développeurs utilisent différentes éditions de la plate-forme Java pour créer des programmes Java qui s'exécutent sur des ordinateurs de bureau, des navigateurs Web, des serveurs Web, des appareils d'information mobiles (tels que des téléphones multifonction) et des appareils intégrés (tels que des décodeurs de télévision).

Java Platform, Standard Edition (Java SE): plate-forme Java pour le développement d'applications, qui sont des programmes autonomes qui s'exécutent sur des bureaux. Java SE est également utilisé pour développer des applets, qui sont des programmes qui s'exécutent dans les navigateurs Web.

Java Platform, Enterprise Edition (Java EE): plate-forme Java pour le développement d'applications et de servlets orientés entreprise, qui sont des programmes serveur conformes à l'API Servlet de Java EE. Java EE est construit sur Java SE.

Plateforme Java, Micro Edition (Java ME): La plate-forme Java pour développer des MIDlets, qui sont des programmes qui s'exécutent sur des appareils d'information mobiles, et des Xlets, qui sont des programmes qui s'exécutent sur des appareils intégrés.

Tapas Pal
la source
0

Le SE (JDK) possède toutes les bibliothèques dont vous aurez besoin pour vous couper les dents sur Java. Je recommande l'IDE Netbeans car il est livré avec le SE (JDK) directement d'Oracle. N'oubliez pas de définir les variables "path" et "classpath" surtout si vous allez essayer la ligne de commande. Avec un système 64 bits, insérez le "Chemin d'accès système", par exemple la variable C: \ Program Files (x86) \ Java \ jdk1.7.0 avant la C: \ Windows \ system32; pour diriger le système vers votre JDK.

J'espère que cela t'aides.

user3064248
la source
0

Java SE est utilisé pour les applications de bureau et les fonctions de base simples. Java EE est utilisé pour le bureau, mais aussi pour le développement Web, la mise en réseau et les choses avancées.

sandhu
la source
0

EE: - Enterprise Edition: - Cette édition Java est spécialement conçue pour les applications / entreprises d'entreprise où nous devons traiter avec un certain nombre de serveurs différents avec une importance pour la sécurité, la gestion des transactions, etc.

SE: - Standard Edition: - Cette édition est destinée aux applications standard.

ME: - Micro Edition: - Cette édition java est spécialement conçue pour les plateformes de téléphonie mobile. Là où plus d'importance est accordée à la gestion de la mémoire car les ressources mémoire sont limitées dans les mobiles.

Donc, fondamentalement, JAVA a différentes éditions pour différentes exigences.

romil
la source