Aller au contenu

« Plateforme Java » : différence entre les versions

Un article de Wikipédia, l'encyclopédie libre.
Contenu supprimé Contenu ajouté
Skouratov (discuter | contributions)
mAucun résumé des modifications
bot 🌐 Amélioration de références : URL ⇒ 3x {lien web} 🗞️
Ligne 220 : Ligne 220 :


=== Failles de sécurité ===
=== Failles de sécurité ===
* En {{date-|avril 2012}}<ref>http://www.lemondeinformatique.fr/actualites/lire-failles-java-7-zero-day-oracle-savait-50223.html</ref>, une [[faille de sécurité]] est identifiée dans les versions Java 5, 6 et 7, compromettant potentiellement la sécurité des systèmes concernés<ref>http://www.pcinpact.com/news/74146-java-faille-critique-millard-dordinateurs-potentillement-vulnerables.htm</ref>. Un correctif a été publié le {{date-|31 août 2012}}<ref>http://www.lemondeinformatique.fr/actualites/lire-oracle-livre-un-patch-critique-pour-java-7-50243.html</ref>.
* En {{date-|avril 2012}}<ref>{{lien web |titre=Failles Java 7 zéro-day : Oracle savait - Le Monde Informatique |url=http://www.lemondeinformatique.fr/actualites/lire-failles-java-7-zero-day-oracle-savait-50223.html |site=[[Le Monde informatique]] |consulté le=31-08-2020}}.</ref>, une [[faille de sécurité]] est identifiée dans les versions Java 5, 6 et 7, compromettant potentiellement la sécurité des systèmes concernés<ref>{{lien web |auteur=Vincent Hermann |titre=Java : une faille critique, un milliard de PC potentiellement vulnérables |url=http://www.pcinpact.com/news/74146-java-faille-critique-millard-dordinateurs-potentillement-vulnerables.htm |site=pcinpact.com |date=27-09-2012 |consulté le=31-08-2020}}.</ref>. Un correctif a été publié le {{date-|31 août 2012}}<ref>{{lien web |titre=Oracle livre un patch critique pour Java 7 (MAJ) - Le Monde Informatique |url=http://www.lemondeinformatique.fr/actualites/lire-oracle-livre-un-patch-critique-pour-java-7-50243.html |site=[[Le Monde informatique]] |consulté le=31-08-2020}}.</ref>.
* Le {{date-|10 janvier 2013}}, le département de la sécurité intérieure des États-Unis (''Department of Homeland Security'') a recommandé la désactivation de l'applet Java sur tous les systèmes concernés, À la suite d'une nouvelle faille. Le {{date-|11 janvier 2013}}, plusieurs éditeurs de solutions de sécurité, dont [[AlienVault]], se sont joints à cette recommandation<ref>[http://www.ohmymac.fr/faille-java-les-autorites-americaines-recommandent-de-ne-plus-utiliser-java/ Faille Java: les autorités américaines recommandent de ne plus utiliser Java], sur le site Ohmymac.fr, 11 janvier 2013</ref>.
* Le {{date-|10 janvier 2013}}, le département de la sécurité intérieure des États-Unis (''Department of Homeland Security'') a recommandé la désactivation de l'applet Java sur tous les systèmes concernés, À la suite d'une nouvelle faille. Le {{date-|11 janvier 2013}}, plusieurs éditeurs de solutions de sécurité, dont [[AlienVault]], se sont joints à cette recommandation<ref>[http://www.ohmymac.fr/faille-java-les-autorites-americaines-recommandent-de-ne-plus-utiliser-java/ Faille Java: les autorités américaines recommandent de ne plus utiliser Java], sur le site Ohmymac.fr, 11 janvier 2013</ref>.



Version du 31 août 2020 à 16:19

Plate-forme Java
Description de l'image Java Logo.svg.

Informations
Créateur James Gosling et Sun Microsystems
Développé par Oracle
Fichier exécutable java.exe
Première version
Dernière version 12 ()
Version avancée 13
État du projet  En développement actif
Écrit en Java, C++
Environnement Windows, Linux, macOS, Solaris
Langues Anglais
Type Technologie
Politique de distribution Gratuit
Licence logiciel propriétaire / gratuiciel[1]
Site web http://www.java.com/fr

La plate-forme Java (the Java Platform en anglais, plateforme Java 2 anciennement) est un standard de facto de plate-forme logicielle, produit par Sun Microsystems, puis Oracle Corporation, permettant de développer et d'exécuter des programmes écrits en langage Java indépendants de tout processeur et de tout système d'exploitation, conformément à la technologie Java.

Toute plate-forme Java se compose principalement d'un moteur d'exécution (appelé une machine virtuelle Java, ou 'JVM') et d'un compilateur fourni avec un ensemble de bibliothèques standards dont il existe plusieurs implémentations pour divers matériels et systèmes d'exploitation, de façon que les programmes Java puissent s'exécuter de façon identique sur chacun d'entre eux.

Chaque version de plate-forme Java répond à des spécifications normalisées dans les Java Specification Requests ou (JSR). Plusieurs versions de cette plateforme[2] cohabitent mi-2015, avec des JVM propres, Oracle implémentant et proposant notamment ses propres implémentations : HotSpot pour Java SE, serveur Glassfish pour Java EE.

À l'instar de la plateforme Microsoft .NET ou de l'environnement Eclipse qui ciblent plusieurs langages, la plateforme Java vise à supporter d'autres langages de programmation que son langage natif Java.

Plateforme ou framework ?

Le terme Java Platform est avant tout une dénomination commerciale. Sa désignation comme Plate-forme plutôt que Framework se justifie cependant par l'intégration, avec les librairies logicielles constituant le framework Java, de la JVM qui permet d'exécuter les programmes Java sur différents OS.

Ainsi, chaque plate-forme Java ne se limite pas à une bibliothèque de composants mis à disposition, elle se caractérise de surcroit par sa faculté à exécuter des logiciels.

Le terme de framework Java doit ainsi être réservé plutôt à des outils logiciels complémentaires enrichissant Java avec des librairies complémentaires, tel que Spring framework.

Machine virtuelle Java

La machine virtuelle Java (anglais Java virtual machine ou JVM) est un appareil informatique fictif (qui exécute des programmes compilés sous forme de bytecode Java. Cet appareil fictif est émulé par un logiciel spécifique à chaque plate-forme ou couple (machine/système d’exploitation) et permet aux applications Java compilées en bytecode de produire les mêmes résultats quelle que soit la plate-forme, tant que celle-ci est pourvue de la machine virtuelle Java adéquate.

Éditions et versions de plates-formes

Contenu et numérotation des plates-formes

Chaque plate-forme Java est constituée de plusieurs programmes, chacun d'entre eux implémentant une JSR qui apporte l'une des fonctionnalités de l'ensemble des capacités de la plate-forme. Par exemple, l'un d'entre eux appelé le compilateur Java permet de convertir les codes source Java en bytecode Java (un langage intermédiaire destinée à la JVM (Java Virtual Machine ou machine virtuelle Java)) est fourni par le JDK (Java Development Kit). Un autre élément, appelé le JRE (Java Runtime Environment) implémente habituellement la JVM grâce à un compilateur JIT (Just In Time) qui convertit à la volée le bytecode intermédiaire en un code natif pour la machine.

Chaque plate-forme, ou édition Java 2, est ainsi désignée par :

  • son nom d'édition : Java SE, Java EE, Java ME ou JavaFX ;
  • son numéro de version 'produit': de 1.2 en 2000 à 1.7 en 2012, abrégés du seul numéro secondaire depuis J2SE 5.0 en 2003 ;
  • son numéro de version 'développeur' correspondant à divers correctifs ou patches: ainsi, la version de la plate-forme de référence est Java SE 1.7.0_21.

Éditions Java 2

Les frameworks Java SE, Java EE, Java FX.

Il existe, dès la version 1.2 de Java, plusieurs distributions (edition en anglais) de la plate-forme Java[3], ce pour chaque version successive de Java.

On retrouve essentiellement :

  • les deux éditions historiques :
    • la plateforme 'de référence' Java Standard Édition (ou Java SE, et auparavant J2SE) destinée aux ordinateurs de bureau ;
    • la Java Enterprise Édition (ou Java EE, et auparavant J2EE) destinée aux serveurs Web, sur-ensemble de Java SE assorti d'un SDK complémentaire;
  • les plates-formes additionnelles :

Chacune de ces déclinaisons est considérée comme constituant un framework à part entière.

Versions et historique

Les premiers environnements Java datent de 1995, mais c'est en 2000 avec la version 1.2 du langage qu'est évoquée pour la première fois la notion de plate-forme Java, Sun introduisant alors deux déclinaisons, ou frameworks :

  • Java 2 Standard Edition (J2SE), plateforme avec les API et bibliothèques de bases, devenue Java SE
  • Java 2 Enterprise Edition (J2EE), extension avec des technologies pour le développement d'applications d’entreprise, devenue Java EE

Sun les qualifie alors de plateforme Java 2 par opposition aux premières générations 1.0 et 1.1. Toutes les versions ultérieures, de J2EE 1.2 à Java SE ou Java EE 7 restent désignées sous le qualificatif de plateformes Java 2[5], bien que le '2' ait été depuis officiellement abandonné.

En 2006 apparaissent les premières versions pour Windows 64bits (notées x64) sur Java6 (JDK & JRE v1.6.0.4)[6]. Puis Oracle a annoncé en la sortie de Java 7 pour le mois d'août de cette même année; début 2012 cette version était toutefois toujours préconisée à la communauté de développeurs uniquement. Java 8 est quant à lui sorti en .

Plateforme Java SE

La plateforme 'Java Standard Edition' a connu les versions publiques suivantes (des versions mineures ultérieures pouvant être commercialisées par exemple dans le cadre de Oracle EBS) :

Version Dernière mise à jour Dénomination Nom de code Spécifications JDK Statut Période de maintenance
1 - - Oak - 1 mai : premier lancement commercial du JDK 1.0 1995
1.0.1 - - - - 1.0.1
  • janvier : JDK 1.0.1
  • septembre : lancement du JDC
1997
1.1 - -
  • Sparkler - JDK 1.1.4
  • Pumpkin - JDK 1.1.5
  • Abigail - JDK 1.1.6
  • Brutus - JDK 1.1.7
  • Chelsea - JDK 1.1.8
- 1.1 février : JDK 1.1 1997
1.2 - - Playground - J2SE 1.2

Cricket - J2SE 1.2.2

(en) JSR 52 1.2
  • N'est plus soutenu de façon active
  • décembre : lancement de J2SE 1.2 et du JCP 1999 décembre : lancement J2EE
1998
1.3 1.29 - Kestrel - J2SE 1.3

Ladybird - J2SE 1.3.1

(en) JSR 58 1.3 Obsolète

mai : J2SE 1.3

2000
1.4 2.30 J2SE 1.4 Merlin - J2SE 1.4.0

Hopper - J2SE 1.4.1 Mantis - J2SE 1.4.2

(en) JSR 59 1.4 Obsolète

février : J2SE 1.4

2002
1.5 0.22 J2SE 5.0 Tiger - J2SE 5.0 (1.5) (en) JSR 176 1.5
  • Obsolète
  • septembre : J2SE 5.0 2006 mai : Java EE 5
2004
1.6 0.45 Java SE 6 Mustang - Java SE 6.0 (1.6) (en) JSR 270 1.6
  • fin de vie le 16/4/2013
  • décembre : Java SE 6.0 2008 décembre : Java FX 1.0
  • 2009 février : JavaFX 1.1
  • 2009 juin : JavaFX 1.2
  • décembre : Java EE 6
  • 2010 janvier : rachat de Sun par Oracle
  • 2010 avril : JavaFX 1.3||2006
1.8 u171 Java SE 8 Kenai puis Spider - Java SE 1.8 (en) JSR 337 1.8 Stable, actuel[7] mars : Java SE 8, JavaFX 8 2014-()
1.7 u79/u80 Java SE 7 Dolphin - Java SE 7 (1.7) (en) JSR 336 1.7
  • Stable, plus d'update public depuis
  • juillet : Java SE  : JavaFX 2.0
  • 2012 août : JavaFX 2.2 2013 juin : Java EE 7
2011
1.9 1.9.0.4[8] Java SE 9 Umbrella JSR379 1.9.0.4 Sorti ; update 4 en . 2017 - jan 2019[9]
10 1.10.0.1 Java SE 10 JSR383 1.10.0.1 Sortie 2018, version qui n'est pas LTS
11 11.0.1 Java SE 11 11.0.1 Sortie le , update 11.0.1 le version LTS (long term support), support de niveau 1 jusqu'en 2023, support étendu jusqu'en 2026
12 Java SE 12 12 Version bêta (07/02/19)
13 Java SE 13 13 Spécifications en cours de réflexion ()

La sortie d'une version 1.9, initialement planifiée fin [10], a finalement eu lieu en . A partir de cette date, Oracle annonce une nouvelle version de Java par semestre, aux mois de mars et septembre[11].

Plateformes Java EE et Java ME

La plateforme Enterprise Edition (Java EE) en est quant à elle à sa version 7 mi-2015 (Java EE 7 SDK Update 1), et fonctionne avec les JDK 6 ou 7[12], et la plateforme Mobile Edition (Java ME) à sa version 8.1 (SDK v. 8.1)[13].

Oracle répertorie 20 implémentations logicielles[2] de cette plateforme mi-2015, incluant ses propres distributions dénommées 'Glassfish'.

Les numéros de versions de ces plateformes sont ainsi ceux de leur SDK.

Failles de sécurité

  • En [14], une faille de sécurité est identifiée dans les versions Java 5, 6 et 7, compromettant potentiellement la sécurité des systèmes concernés[15]. Un correctif a été publié le [16].
  • Le , le département de la sécurité intérieure des États-Unis (Department of Homeland Security) a recommandé la désactivation de l'applet Java sur tous les systèmes concernés, À la suite d'une nouvelle faille. Le , plusieurs éditeurs de solutions de sécurité, dont AlienVault, se sont joints à cette recommandation[17].

Langages supportés

À l'instar de la plateforme Microsoft .NET qui s'ouvre à plusieurs langages, la plateforme Java vise à supporter d'autres langages de programmation que son langage natif Java, notamment des langages de script :

Notes et références

  1. http://www.oracle.com/technetwork/java/javase/terms/license/index.html
  2. a et b (en) « Java EE Compatibility », sur oracle.com (consulté le )
  3. Differences between Java EE and Java SE http://docs.oracle.com
  4. Développons en Java - J2ME/Java ME
  5. informations techniques sur Javahttp://www.java.com
  6. JRE 6u4 x64
  7. Java SE 8 is Now Available 18/03/2014
  8. (en) « JDK 9.0.4 Release Notes », sur www.oracle.com, (consulté le )
  9. (en) « Java SE at a Glance », sur www.oracle.com (consulté le )
  10. JDK 9OpenJDK
  11. (en) « Oracle Java SE Support Roadmap », sur www.oracle.com, (consulté le )
  12. http://www.oracle.com/technetwork/java/javaee/downloads/index.html
  13. http://www.oracle.com/technetwork/java/javame/javamobile/download/sdk/index.html
  14. « Failles Java 7 zéro-day : Oracle savait - Le Monde Informatique », sur Le Monde informatique (consulté le ).
  15. Vincent Hermann, « Java : une faille critique, un milliard de PC potentiellement vulnérables », sur pcinpact.com, (consulté le ).
  16. « Oracle livre un patch critique pour Java 7 (MAJ) - Le Monde Informatique », sur Le Monde informatique (consulté le ).
  17. Faille Java: les autorités américaines recommandent de ne plus utiliser Java, sur le site Ohmymac.fr, 11 janvier 2013