Java Language
Editions Java, versions, versions et distributions
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
etunpack200
pour emballer et décompresser le fichier "pack200" pour le déploiement Web. - Les commandes
orbd
,rmid
,rmiregistry
ettnameserv
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
etjarsigner
- Des outils de développement tels que:
-
appletviewer
pour exécuter des applets -
idlj
leidlj
CORBA IDL vers Java -
javah
le générateur dejavah
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
etwsimport
pour JAX-WS
-
- Outils de diagnostic tels que:
-
jdb
le débogueur Java de base -
jmap
etjhat
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
etjps
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.
- Tiré de la documentation Oracle
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:
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.
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:
- Dates de sortie du JDK par Roedy Green de Canadian Mind Products
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:
- Wikipedia: Historique des versions de Java