Java SE 6 vs JRE 1.6 vs JDK 1.6 - Qu'est-ce que cela signifie?

186

Je vois de nombreux termes Java flotter. Je dois installer le JDK 1.6. J'ai cru comprendre que Java 6 == Java 1.6. Cependant, lorsque j'installe Java SE 6, j'obtiens une JVM qui indique la version 11.0! Qui peut résoudre la folie?

Joe Schneider
la source
14
Il existe un joli diagramme conceptuel Java (avec des liens cliquables) qui peut également vous aider.
informatik01

Réponses:

56

Lorsque vous tapez "java -version", vous voyez trois numéros de version - la version java (sur la mienne, c'est " 1.6.0_07"), la version Java SE Runtime Environment ("build 1.6.0_07-b06") et la version HotSpot (sur la mienne, c'est " build 10.0-b23, mixed mode") Je soupçonne que le "11.0" que vous voyez est la version HotSpot.

Mise à jour: HotSpot est (ou était, maintenant ils semblent l'utiliser pour désigner l'ensemble de la machine virtuelle) le compilateur juste à temps intégré à la machine virtuelle Java. Dieu sait seulement pourquoi Sun lui donne un numéro de version distinct.

Paul Tomblin
la source
7
Alors, quelle est la différence entre JVM 1.6 et JVM 11.0? Qu'est-ce que le hotspot?
Joe Schneider
Merci, c'était la confusion - deux numéros de version différents.
Joe Schneider
1
En fait, HotSpot n'est pas un JIT. JIT implique que la compilation a lieu avant l'exécution. HotSpot utilise d'abord l'interprétation pour exécuter et analyser le code avant de compiler / optimiser des parties sélectionnées du programme.
John Nilsson
179
  • JDK - Kit de développement Java
  • JRE - Environnement d'exécution Java
  • Java SE - Édition standard Java

SE définit un ensemble de capacités et de fonctionnalités; il existe des éditions plus complexes (Enterprise Edition - EE) et plus simples (Micro Edition - ME - pour les environnements mobiles).

Le JDK comprend le compilateur et d'autres outils nécessaires pour développer des applications Java; JRE ne le fait pas. Ainsi, pour exécuter une application Java fournie par quelqu'un d'autre, vous avez besoin de JRE; pour développer une application Java, vous avez besoin de JDK.

Édité : Comme Chris Marasti-Georg l'a souligné dans un commentaire, vous pouvez trouver de nombreuses informations sur le site Web Java de Sun , et en particulier dans la section Java SE , (2ème option, Java SE Development Kit (JDK) 6 Update 10) .


Modifié le 06/04/2011: Le monde tourne et Java est désormais géré par Oracle, qui a racheté Sun. Plus tard cette année, le sun.comdomaine est censé s'éteindre. La nouvelle page (basée sur une redirection) est cette page Java sur Oracle Tech Network. (Voir aussi java.com .)


Édité 11/01/2013: Et le monde continue de tourner (nonobstant le 21/12/2012), et voilà, JRE 6 est sur le point d'atteindre sa fin de support. Oracle ne dit plus de mises à jour publiques de Java 6 après février 2013.

Dans une version donnée de Java, cette réponse reste valable. JDK est le kit de développement Java, JRE est l'environnement d'exécution Java, Java SE est l'édition standard, etc. Mais la version 6 (1.6) devient désuète.

Modifié 2015-04-29: Et avec quelques autres révolutions autour du soleil, le moment est venu pour la fin du support de Java SE 7, aussi. En avril 2015, Oracle a confirmé qu'il ne fournissait plus de mises à jour publiques de Java SE 7. La fin provisoire des mises à jour publiques de Java SE 8 est mars 2017, mais cette date de fin est susceptible de changer (plus tard, pas plus tôt).

Jonathan Leffler
la source
1
Donc, si j'ai besoin de JDK 1.6, que dois-je installer? L'installation de Java SE 6 me donne une JVM qui rapporte comme version 11.0!
Joe Schneider
1
Vous devez aller sur sun et télécharger le JDK 1.6 ou 6, quel qu'il soit.
Chris Marasti-Georg
1
@Pacerier: était-ce vrai en octobre 2008? De plus, le composant principal du JDK est le compilateur Java, n'est-ce pas?
Jonathan Leffler
1
"SE définit un ensemble de capacités et de fonctionnalités" . C'est vague. Pourriez-vous nous en dire plus? Je comprends que JDK contient le compilateur et probablement les bibliothèques standard aussi . Ai-je raison? Si oui, que contient SE? Quels types de capacités et de fonctionnalités? Je veux dire si je veux utiliser lambda, alors je dois installer le JDK approprié pour compiler mon code, non? et SE n'a aucun rôle là-bas?
Nawaz
1
@Nawaz: Il y a une limite sérieuse à la quantité de ce type d'informations qui pourrait être incluse dans cette réponse sans qu'elle devienne trop large. Ces questions sont traitées sur les sites Web Oracle et Java. Par exemple, vous devriez consulter Où puis-je obtenir des informations techniques sur Java . Il comporte des sections comparant et contrastant JRE et JDK, et JRE et JSE. Je pense que la JVM est fournie avec le JDK ainsi qu'avec JRE; si vous êtes développeur, vous obtenez JDK, mais en tant qu'utilisateur, JRE est suffisant. Le support Lambda dépend de la version de Java (9 vs 8 vs 7 vs 6 ...).
Jonathan Leffler
106

Cela pourrait aider quelqu'un:

J'installe le dernier Java sur mon système pour le développement, et actuellement c'est Java SE 7. Maintenant, plongeons dans cette "folie", comme vous le dites ...

Tous ces éléments sont identiques (lorsque les développeurs parlent de Java pour le développement):

  • Java SE 7
  • Java SE v1.7.0
  • Kit de développement Java SE 7

À partir de Java v1.5:

  • v5 = v1.5.
  • v6 = v1.6.
  • v7 = v1.7.

Et nous pouvons supposer que cela restera pour les versions futures.

Ensuite, pour les développeurs, téléchargez JDK, pas JRE.

JDK contiendra JRE. Si vous avez besoin de JDK et JRE, obtenez JDK. Les deux seront installés à partir de l'installation unique de JDK, comme vous le verrez ci-dessous.

Comme quelqu'un l'a mentionné ci-dessus:

  • JDK = Kit de développement Java (les développeurs en ont besoin, c'est vous si vous codez en Java)
  • JRE = Java Runtime Environment (les utilisateurs en ont besoin, c'est chaque utilisateur d'ordinateur aujourd'hui)
  • Java SE = Java Standard Edition

Voici les liens étape par étape que j'ai suivis (une étape mène à la suivante, tout cela pour un seul téléchargement) pour télécharger Java pour le développement (JDK):

  1. Visitez «Téléchargements Java SE»: http://www.oracle.com/technetwork/java/javase/downloads/index.html
  2. Cliquez sur "JDK Download" et visitez "Java SE Development Kit 7 Downloads": http://www.oracle.com/technetwork/java/javase/downloads/java-se-jdk-7-download-432154.html (notez que suivre le lien de l'étape 1 vous amènera à un lien différent car les mises à jour JDK 1.7, les versions ultérieures, sont maintenant disponibles)
  3. Accepter l'accord :)
  4. Cliquez sur «Java SE Development Kit 7 (Windows x64)»: http://download.oracle.com/otn-pub/java/jdk/7/jdk-7-windows-x64.exe (pour mon Windows 7 64 bits système)
  5. Vous téléchargez maintenant (espérons-le le dernier) JDK pour votre système! :)

Gardez à l'esprit que les liens ci-dessus sont à titre de référence uniquement, pour vous montrer la méthode étape par étape de ce qu'il faut pour télécharger le JDK.

Et installez avec les paramètres par défaut pour:

  • «C: \ Program Files \ Java \ jdk1.7.0 \» (JDK)
  • «C: \ Program Files \ Java \ jre7 \» (JRE) <--- pourquoi a-t-il demandé un nouveau dossier d'installation? c'est JRE!

Rappelez-vous ci-dessus que JDK contient JRE, ce qui est logique si vous savez ce qu'ils sont tous les deux. Encore une fois, voir ci-dessus.

Après votre installation, vérifiez «C: \ Program Files \ Java» pour voir ces deux dossiers. Vous savez maintenant ce qu'ils sont et pourquoi ils sont là.

Je sais que j'ai écrit ceci pour les débutants, mais j'aime connaître les choses en détail, alors j'espère que cela aide.

Xonatron
la source
8
cette réponse doit être augmentée :)
fchen
J'ai récemment dû installer un jre pour exécuter l'un des autres installateurs, puis j'ai dû installer une version 32 bits pour que l'un des autres installateurs fonctionne. La version que j'utilise à la fin est glassfish 4 qui ne semble toujours pas fournir javax.persistence. Il s'est ensuite avéré que j'avais besoin de maven, que vous décompressez puis définissez des variables d'environnement. Quel bordel!
JonnyRaa
Il me semble que Java SE et Java SDK sont un seul et même package.
galmok
20

Un historique bref et peut-être incorrect des versions de Java

  • Java est une plateforme. Il se compose de deux produits: le kit de développement logiciel et l'environnement d'exécution.

  • Lorsque Java est sorti pour la première fois, il s'appelait apparemment simplement Java . Si vous étiez développeur, vous connaissiez également la version, qui était un "1.0" normal et plus tard un "1.1". Les deux produits qui faisaient partie de la plateforme ont également reçu des noms:

    • JDK - "Kit de développement Java"
    • JRE - "Java Runtime Environment"
  • Apparemment, les changements de la version 1.2 sont si importants qu'ils ont commencé à appeler la plate-forme Java 2 .

    • La «distribution» par défaut de la plate-forme a reçu le surnom de «standard» pour la mettre en contraste avec ses frères et sœurs. Vous aviez donc trois plateformes:

      • «Java 2 Standard Edition (J2SE)»
      • «Java 2 Enterprise Edition (J2EE)»
      • «Java 2 Mobile Edition (J2ME)»
    • Le JDK a été officiellement renommé «Java 2 Software Development Kit».

  • Lorsque la version 1.5 est sortie, les combinaisons ont décidé qu'elles devaient «renommer» le produit. Ainsi, la plate-forme Java a obtenu deux versions - la version du produit "5" et la version développeur "1.5" (Oui, la règle est explicitement mentionnée - "supprimez le" 1 "). Désormais, la plate-forme s'appelle officiellement "Java 2 Platform Standard Edition 5.0 (J2SE 5.0)" .

    • Les poursuites ont également réalisé que la communauté de développement ne reprenait pas le changement de nom du JDK. Mais au lieu d'annuler leur modification, ils décident simplement de supprimer le "2" du nom des produits individuels, qui deviennent désormais "J2SE Development Kit 5.0 (JDK 5.0)" et "J2SE Runtime Environment 5.0 (JRE 5.0)" .
  • Lorsque la version 1.6 est sortie, quelqu'un s'est rendu compte qu'avoir deux nombres dans le nom était bizarre. Ils décident donc de supprimer complètement le 2 (et le suffixe ".0"), et nous nous retrouvons avec la "Java Platform, Standard Edition 6 (Java SE 6)" contenant le "Java SE Development Kit 6 (JDK 6)" et "Java SE Runtime Environment 6 (JRE 6)" .

  • La version 1.7 n'a rien fait de stupide. Si je devais deviner, le prochain grand changement serait d'abandonner le "SE", de sorte que le cycle se termine et que le JDK soit à nouveau appelé le "Kit de développement Java".

Remarques

  • Par souci de simplicité, un tas de signes de marque ont été omis. Supposons donc Java ™, JDK ™ et JRE ™.

  • SO semble avoir du mal à rendre les listes imbriquées.

Références

Épilogue

Déposez simplement le "1". à partir de versions imprimées par javac -versionet java -versionet vous êtes prêt à partir.

Manav
la source
3
Sainte vache. Je pensais que seuls Microsoft avait des sans-abri fous inventant des noms de produits.
Stabledog
2
C'est de la folie. Je n'ai jamais pu les comprendre sans avoir à les consulter explicitement à chaque fois.
Preet Sangha le
4

Avec la sortie de Java 5, la version du produit a été distincte de la version développeur, comme décrit ici

boîte à outils
la source
3

Java SE Runtime est destiné à l'utilisateur final, vous avez donc besoin de la version Java JRE, la première version de Java était la 1, puis la 1.1 - 1.2 - 1.3 - 1.4 - 1.5 - 1.6 etc et généralement chaque version est nommée par version donc JRE 6 signifie Java jre 1.6, de toute façon il y a la version de mise à jour, par exemple 1.6 update 45, qui s'appelle java jre 6u45.

D'après ce que je sais, ils ont préféré utiliser le chiffre 6 au lieu d'utiliser 1.6 pour mieux refléter le niveau de maturité, de stabilité, d'évolutivité, de sécurité et plus

mario
la source