Recherche…


Différences entre les distributions Java SE JRE ou Java SE JDK

Les versions Sun / Oracle de Java SE se présentent sous deux formes: JRE et JDK. En termes simples, les JRE prennent en charge les applications Java et les JDK prennent également en charge le développement Java.

Java Runtime Environment

Java Runtime Environment ou les distributions JRE se composent de l'ensemble des bibliothèques et des outils nécessaires pour exécuter et gérer les applications Java. Les outils dans un JRE moderne typique incluent:

  • La commande java pour exécuter un programme Java dans une machine virtuelle Java (Java Virtual Machine)
  • La commande jjs pour exécuter le moteur Javascript Nashorn.
  • La commande keytool pour manipuler les fichiers de clés Java.
  • La commande policytool pour la modification des stratégies de sécurité du sandbox de sécurité.
  • Les outils pack200 et unpack200 pour emballer et décompresser le fichier "pack200" pour le déploiement Web.
  • Les commandes orbd , rmid , rmiregistry et tnameserv qui prennent en charge les applications Java CORBA et RMI.

Les installateurs "Desktop JRE" incluent un plug-in Java adapté à certains navigateurs Web. Ceci est délibérément exclu de "Server JRE" installers.linux syscall read benchmarku

À partir de Java 7 mise à jour 6, les installateurs JRE ont inclus JavaFX (version 2.2 ou ultérieure).

Kit de développement Java

Un kit de développement Java ou une distribution JDK inclut les outils JRE et des outils supplémentaires pour développer des logiciels Java. Les outils supplémentaires incluent généralement:

  • La commande javac , qui compile le code source Java (".java") en fichiers bytecode (".class").
  • Les outils pour créer des fichiers JAR tels que jar et jarsigner
  • Des outils de développement tels que:
    • appletviewer pour exécuter des applets
    • idlj le idlj CORBA IDL vers Java
    • javah le générateur de javah JNI
    • native2ascii pour la conversion de jeu de caractères du code source Java
    • schemagen le générateur de schémas Java vers XML (partie de JAXB)
    • serialver génère la chaîne de version Java Object Serialization.
    • les outils de support wsgen et wsimport pour JAX-WS
  • Outils de diagnostic tels que:
    • jdb le débogueur Java de base
    • jmap et jhat pour vider et analyser un tas Java.
    • jstack pour obtenir un vidage de pile de threads.
    • javap pour examiner les fichiers ".class".
  • Outils de gestion et de surveillance des applications tels que:
    • jconsole une console de gestion,
    • jstat , jstatd , jinfo et jps pour la surveillance des applications

Une installation Sun / Oracle JDK typique comprend également un fichier ZIP contenant le code source des bibliothèques Java. Avant Java 6, c'était le seul code source Java accessible au public.

À partir de Java 6, le code source complet d'OpenJDK est disponible en téléchargement sur le site OpenJDK. Il n'est généralement pas inclus dans les packages JDK (Linux), mais est disponible sous forme de package séparé.

Quelle est la différence entre Oracle Hotspot et OpenJDK

Orthogonal à la dichotomie JRE-JDK, il existe deux types de versions Java largement disponibles:

  • Les versions Oracle Hotspot sont celles que vous téléchargez à partir des sites de téléchargement Oracle.
  • Les versions OpenJDK sont celles qui sont créées (généralement par des fournisseurs tiers) à partir des référentiels sources OpenJDK.

En termes fonctionnels, il y a peu de différence entre une version Hotspot et une version OpenJDK. Il existe des fonctionnalités "d'entreprise" supplémentaires dans Hotspot que les clients Java (payants) d'Oracle peuvent activer, mais à part cela, la même technologie est présente dans Hotspot et OpenJDK.

Un autre avantage de Hotspot sur OpenJDK est que les versions de correctifs pour Hotspot ont tendance à être disponibles un peu plus tôt. Cela dépend également de la flexibilité de votre fournisseur OpenJDK; Par exemple, combien de temps cela prend-il à une équipe de construction d'une distribution Linux pour préparer une nouvelle version d'OpenJDK, et à l'avoir dans ses référentiels publics.

Le revers de la médaille est que les versions Hotspot ne sont pas disponibles à partir des référentiels de paquets pour la plupart des distributions Linux. Cela signifie que le fait de garder votre logiciel Java à jour sur une machine Linux est généralement plus efficace si vous utilisez Hotspot.

Différences entre Java EE, Java SE, Java ME et JavaFX

La technologie Java est à la fois un langage de programmation et une plate-forme. Le langage de programmation Java est un langage orienté objet de haut niveau qui possède une syntaxe et un style particuliers. Une plate-forme Java est un environnement particulier dans lequel les applications de langage de programmation Java s'exécutent.

Il existe plusieurs plateformes Java. De nombreux développeurs, même les développeurs de langages de programmation Java de longue date, ne comprennent pas comment les différentes plates-formes sont liées les unes aux autres.

Les plates-formes de langage de programmation Java

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

  • Plate-forme Java, Standard Edition (Java SE)

  • Plate-forme Java, Enterprise Edition (Java EE)

  • Plate-forme Java, Micro Edition (Java ME)

  • Java FX

Toutes les plates-formes Java se composent d'une machine virtuelle Java (VM) et d'une interface de programmation d'application (API). Java Virtual Machine est un programme, pour une plate-forme matérielle et logicielle particulière, qui exécute des applications de technologie Java. Une API est un ensemble de composants logiciels que vous pouvez utiliser pour créer d'autres composants ou applications logicielles. Chaque plate-forme Java fournit une machine virtuelle et une API, ce qui permet aux applications écrites pour cette plate-forme de s'exécuter sur tous les systèmes compatibles avec tous les avantages du langage de programmation Java: indépendance, 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 essentielles 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 de l'interface graphique et l'analyse XML.

Outre l’API principale, 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 kits d’outils couramment utilisés dans les applications de technologie Java.

Java EE

La plate-forme Java EE est construite sur la plate-forme Java SE. La plate-forme Java EE fournit un environnement d’API et 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 de faible encombrement pour exécuter des applications de langage de programmation Java sur de petits périphériques, tels que des téléphones portables. L'API est un sous-ensemble de l'API Java SE, avec des bibliothèques de classes spéciales utiles pour le développement d'applications pour petits périphériques. Les applications Java ME sont souvent des clients de services de plate-forme Java EE.

Java FX

La technologie Java FX est une plate-forme permettant de créer des applications Internet riches écrites en Java FX ScriptTM. Java FX Script est un langage déclaratif de type statique compilé en bytecode de la technologie Java, qui peut ensuite être exécuté sur une machine virtuelle Java. Les applications écrites pour la plate-forme Java FX peuvent inclure et lier des classes de langage de programmation Java et peuvent être des clients des services de plate-forme Java EE.


Versions Java SE

Historique de la version Java SE

Le tableau suivant indique la chronologie des principales versions majeures de la plate-forme Java SE.

Java SE Version 1 Nom de code Fin de vie (gratuit 2 ) Date de sortie
Java SE 9 (accès anticipé) Aucun avenir 2017-07-27 (estimé)
Java SE 8 Aucun avenir 2014-03-18
Java SE 7 Dauphin 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 Mante avant 2009-11-04 2003-06-26
Java SE 1.4.1 Trémie / Sauterelle avant 2009-11-04 2002-09-16
Java SE 1.4 Merlin avant 2009-11-04 2002-02-06
Java SE 1.3.1 Coccinelle avant 2009-11-04 2001-05-17
Java SE 1.3 Crécerelle avant 2009-11-04 2000-05-08
Java SE 1.2 Cour de récréation avant 2009-11-04 1998-12-08
Java SE 1.1 Cierge magique avant 2009-11-04 1997-02-19
Java SE 1.0 Chêne avant 2009-11-04 1996-01-21

Notes de bas de page:

  1. Les liens sont des copies en ligne de la documentation des versions respectives sur le site Web d'Oracle. La documentation de nombreuses versions plus anciennes n'est plus en ligne, bien qu'elle puisse généralement être téléchargée à partir des archives Oracle Java.

  2. La plupart des versions historiques de Java SE ont dépassé leur date de fin de vie officielle. Lorsqu'une version Java passe cette étape, Oracle cesse de fournir des mises à jour gratuites. Les mises à jour sont toujours disponibles pour les clients avec des contrats de support.

La source:

Faits saillants de la version Java SE

Version Java SE Points forts
Java SE 8 Expressions Lambda et flux inspirés de MapReduce. Le moteur Javascript Nashorn. Annotations sur les types et annotations répétitives. Extensions arithmétiques non signées. Nouvelles API de date et heure. Bibliothèques JNI liées statiquement. Lanceur JavaFX. Enlèvement de PermGen.
Java SE 7 Commutateurs de chaînes, try-with-resource , the diamond ( <> ), améliorations littérales numériques et améliorations / gestion des exceptions. Améliorations de la bibliothèque de accès simultanés. Prise en charge améliorée des systèmes de fichiers natifs. Timsort. Algorithmes de cryptage ECC. Amélioration du support graphique 2D (GPU). Annotations enfichables.
Java SE 6 Amélioration significative des performances de la plate-forme JVM et du Swing. API de langage de script et moteur Javascript Mozilla Rhino. JDBC 4.0. API du compilateur. JAXB 2.0. Prise en charge des services Web (JAX-WS)
Java SE 5 Génériques, annotations, auto-boxing, classes enum , varargs, améliorés for boucles et les importations statiques. Spécification du modèle de mémoire Java. Swing et améliorations RMI. Ajout du package java.util.concurrent.* Et du Scanner .
Java SE 1.4 Le mot-clé assert . Classes d'expressions régulières Chaîne d'exception. API NIO - E / S, Buffer et Channel non bloquants. java.util.logging.* API. Image I / O API. XML intégré et XSLT (JAXP). Sécurité intégrée et cryptographie (JCE, JSSE, JAAS). Java Web Start intégré. API de préférences.
Java SE 1.3 HotSpot JVM inclus Intégration CORBA / RMI. Interface JNDI (Java Naming and Directory Interface). Framework du débogueur (JPDA). API JavaSound. API proxy.
Java SE 1.2 Le mot clé strictfp . API de swing. Le plugin Java (pour les navigateurs Web). Interopérabilité CORBA. Cadre des collections.
Java SE 1.1 Classes internes Réflexion. JDBC. RMI. Unicode / flux de caractères. Prise en charge de l'internationalisation. Refonte du modèle d’événement AWT. JavaBeans.

La source:



Modified text is an extract of the original Stack Overflow Documentation
Sous licence CC BY-SA 3.0
Non affilié à Stack Overflow