Développons en Java v 2.40 Copyright (C) 1999-2023 Jean-Michel DOUDOUX. |
|||||||
Niveau : | Supérieur |
Pour développer des composants en Java (applications clientes, applets, applications web, services web, ... ), il existe une large gamme d'outils commerciaux et libres pour répondre à ce vaste marché.
Comme dans d'autres domaines, les avantages et les inconvénients de ces outils sont semblables et fonction de leur catégorie bien qu'ils ne puissent pas être complètement généralisés :
Avantages | Inconvénient | |
Outils commerciaux |
plus de fonctionnalité une meilleure ergonomie une hot line dédiée |
le prix |
Outils libres |
la gratuité des mises à jour fréquentes (variable selon le projet) |
pas de support officiel (aide communautaire par les forums) |
Quelques outils libres n'ont que peu de choses à envier à certains de leurs homologues commerciaux : ainsi, par exemple, Tomcat du projet Jakarta est l'implémentation de référence pour ce qui concerne les servlets et les JSP.
Enfin certains éditeurs, surtout dans le domaine des IDE, proposent souvent une version limitée (dans les fonctionnalités ou dans le temps) mais gratuite qui permet d'utiliser et d'évaluer le produit.
L'évolution de ces outils suit l'évolution du marché concernant Java : développement d'applets (web client), d'applications autonomes et C/S et maintenant développement côté serveur (applications et services web).
La liste des produits de ce chapitre est loin d'être exhaustive mais représente les plus connus ou ceux que j'utilise.
Ce chapitre contient plusieurs sections :
Les environnements de développements intégrés regroupent dans un même outil la possibilité d'écrire du code source, de concevoir une application de façon visuelle par assemblage de beans, d'exécuter et de déboguer le code.
D'une façon générale, ils sont tous très gourmands en ressources machines : un processeur rapide, 256 Mo de RAM pour être à l'aise ... En fait la plupart de ces outils sont partiellement ou totalement écrits en Java.
Le choix d'un IDE doit tenir compte de plusieurs caractéristiques : ergonomie et convivialité pour faciliter l'utilisation, fonctionnalités de bases et avancées pour accroître la productivité, robustesse, support des standards, ... La plupart des éditeurs proposent une version gratuite qui permet d'évaluer leur produit.
Eclipse est un projet open source à l'origine développé par IBM pour ses futurs outils de développement et offert à la communauté. Le but est de fournir un outil modulaire capable non seulement de faire du développement en Java mais aussi dans d'autres langages et d'autres activités. Cette polyvalence est liée au développement de modules (plug-in) réalisés par la communauté ou des entités commerciales. |
Licence : EPL (eclipse Public Licence)
Statut :
Site web : http://www.eclipse.org
Version |
Date de diffusion |
|
3.0 |
juin 2004 |
|
3.1 | juin 2005 | 10 projets |
3.2 | juin 2006 | nom de code Callisto, 10 projets |
3.3 | juin 2007 | nom de code Europa, 21 projets |
3.4 | juin 2008 | nom de code Ganymede, 23 projets |
3.5 | juin 2009 | nom de code Galileo, 33 projets |
3.6 | juin 2010 | nom de code Helios, 77 projets |
3.7 | juin 2011 | nom de code Indigo, 62 projets |
4.1 | juin 2011 | nom de code Juno, 71 projets |
4.2 | juin 2012 | nom de code Juno, 71 projets |
4.3 | juin 2013 | nom de code Kepler, 72 projets |
4.4 | juin 2014 | nom de code Luna, 76 projets, support de Java 8 |
4.5 | juin 2015 | nom de code Mars, 79 projets |
4.6 | juin 2016 | nom de code Neon, 84 projets |
4.7 | juin 2017 | nom de code Oxgyen, 83 projets |
4.8 | juin 2018 | nom de code Photon, 85 projets |
4.9 | septembre 2018 | nom de code 2018-09 |
4.10 | décembre 2018 | nom de code 2018-12 |
4.11 | mars 2019 | nom de code 2019-03 |
4.12 | juin 2019 | nom de code 2019-06 |
4.13 | septembre 2019 | nom de code 2019-09 |
4.14 | décembre 2019 | nom de code 2019-12 |
4.15 | mars 2020 | nom de code 2020-03 |
4.16 | juin 2020 | nom de code 2020-06 |
4.17 | septembre 2020 | nom de code 2020-09 |
4.18 | décembre 2020 | nom de code 2020-12 |
4.19 | mars 2021 | nom de code 2021-03 |
4.20 | juin 2021 | nom de code 2021-06 |
4.21 | septembre 2021 | nom de code 2021-09 |
4.22 | décembre 2021 | nom de code 2021-12 |
4.23 | mars 2022 | nom de code 2022-03 |
4.24 | juin 2022 | nom de code 2022-06 |
4.25 | septembre 2022 | nom de code 2022-09 |
4.26 | décembre 2022 | nom de code 2022-12 |
4.27 | mars 2023 | nom de code 2023-03 |
4.28 | juin 2023 | nom de code 2023-06 |
4.29 | septembre 2023 | nom de code 2023-09 |
4.30 | décembre 2023 | nom de code 2023-12 |
La fondation Eclipse gère de nombreux sous-projets parmi lesquels :
Projet | Description |
Eclipse | ce projet développe l'architecture et la structure de la plate-forme Eclipse. |
Eclipse Tools | ce projet développe ou intègre des outils à la plate-forme pour permettre à des tiers de l'enrichir. Il possède plusieurs sous-projets tels que CDT (plug-in pour le développement en C/C++), AspectJ (AOP), GEF (Graphical Editing Framework ), PHP (plug-in pour le développement en PHP), Cobol (plug-in pour le développement en Cobol), VE (Visual Editor) pour la création d'IHM. |
Eclipse Technology | ce projet, divisé en trois catégories, propose d'effectuer des recherches sur des évolutions de la plate-forme et des technologies qu'elle met en oeuvre. |
Web Tools Platform (WTP) | ce projet a pour but d'enrichir la plate-forme enfin de proposer un framework et des services pour la création d'outils de développement d'applications web. Il est composé de plusieurs sous-projets : WST (Web Standard Tools), JST (J2EE Standard Tools), ATF (Ajax Toolkit Framework), Dali (mapping avec JPA) et JSF (Java Server Faces) |
Test and Performance Tools Platform (TPTP) | ce projet a pour but de développer une plate-forme servant de support à la création d'outils de tests et d'analyses |
Business Intelligence and Reporting Tools (BIRT) | ce projet a pour but de développer une plate-forme facilitant l'intégration de générateur d'états. Il est composé de 4 sous-projets : ERD (Eclipse Report Designer), WRD (Web based Report Designer), ERE (Eclipse Report Engine) et ECE (Eclipse Charting Engine). |
Eclipse Modeling | ce projet contient plusieurs sous-projets dont EMF (Eclipse Modeling Framework) et UML2 pour une implémentation d'UML reposant sur EMF |
Data Tools Platform (DTP) | ce projet a pour but de manipuler des sources de données (bases de données relationnelles) |
Device Software Development Platform | ce projet a pour but de créer des plugins pour faciliter le développement d'applications sur appareils mobiles |
Eclipse SOA Tools Platform | ce projet a pour but de développer des outils pour faciliter la mise en oeuvre d'architecture de type SOA |
Le site officiel est à l'url www.eclipse.org/
Bien que développé en Java, les performances à l'exécution d'Eclipse sont très bonnes car il n'utilise pas Swing pour l'interface homme-machine mais un toolkit particulier nommé SWT associé à la bibliothèque JFace. SWT (Standard Widget Toolkit) est développé en Java par IBM en utilisant au maximum les composants natifs fournis par le système d'exploitation sous-jacent. JFace utilise SWT et propose une API pour faciliter le développement d'interfaces graphiques.
Eclipse ne peut donc fonctionner que sur les plates-formes pour lesquelles SWT a été porté.
SWT et JFace sont utilisés par Eclipse pour développer le plan de travail (Workbench) qui organise la structure de la plate-forme et les interactions entre les outils et l'utilisateur. Cette structure repose sur trois concepts : la perspective, la vue et l'éditeur. La perspective regroupe des vues et des éditeurs pour offrir une vision particulière des développements. En standard, Eclipse propose huit perspectives.
Les vues permettent de visualiser et de sélectionner des éléments. Les éditeurs permettent de visualiser et de modifier le contenu d'un élément de l'espace de travail.
Netbeans est un environnement de développement open source
écrit en Java. Le produit est composé d'une partie centrale
à laquelle il est possible d'ajouter des modules. |
Netbeans est un IDE open source racheté et développé par Sun Microsystems.
Licence : open source
Statut : mises à jour régulières
Site web : netbeans.org/
Version |
Date de diffusion |
|
3.5 |
juin 2003 |
|
3.6 | avril 2004 | |
4.0 | decembre 2004 | |
4.1 | mai 2005 | |
5.0 | janvier 2006 | |
5.5 | octobre 2006 | |
6.0 | décembre 2007 | |
6.1 | avril 2008 | |
6.5 | novembre 2008 | |
6.7 | juin 2009 | |
6.8 | Décembre 2009 | |
6.9 | Juin 2010 | |
7.0 | Avril 2011 | |
7.0.1 | Août 2011 | |
7.3 | Février 2013 | |
7.4 | Octobre 2014 | |
8.0 | Mars 2014 | support Java 8, Java ME Embedded 8 |
8.0.2 | Novembre 2014 | |
9 | Juillet 2018 | Projet Apache (Incubating), support de Java 10 |
10 | Décembre 2018 | Projet Apache (Incubating), support de Java 11, JUnit 5 |
11 | Avril 2019 | Projet Apache (Incubating), support de Java 12 |
11.1 | Juillet 2019 | Projet Apache Top Level |
11.2 | Octobre 2019 | |
11.3 | Février 2020 | |
12.0 LTS | Juin 2020 | |
12.1 | Septembre 2020 | |
12.2 | Décembre 2020 | |
12.3 | Mars 2021 | |
12.4 | Mai 2021 | |
12.5 | Septembre 2021 | |
12.6 | Novembre 2021 | |
13 | Mars 2022 | |
14 | Juin 2022 | |
15 | Août 2022 | |
16 | Novembre 2022 | |
17 | Février 2023 | |
18 | Mai 2023 | |
19 | Septembre 2023 |
Netbeans propose des fonctionnalités permettant le développement d'applications standalone (AWT/Swing), web (Servlets, JSP, Struts, JSF), mobile (J2ME) ou d'entreprise (J2EE/Java EE).
Il fonctionne sous Windows, Linux, Mac OS X et Solaris.
Netbeans est modulaire et propose plusieurs plugins officiels :
Mobility Pack | Pour le développement d'applications mobiles avec une conception WYSIWYG. Il existe une version pour le développement avec le profile CLDC/MIDP et une avec le profile CDC | |
Visual Web Pack | Pour le développement d'applications web avec une conception WYSIWYG | |
Enterprise Pack | Pour le développement de service web et de composants pour une architecture de type SOA avec une conception WYSIWYG | |
Profiler | Pour profiler une application | |
C/C++ Pack | Pour le développement d'applications en C/C++ |
Il existe aussi de nombreux plugins développés par des tiers (une liste peut être consultée à l'url netbeans.org/catalogue/index.html )
Quelques fonctionnalités de Netbeans sont particulièrement intéressantes :
IntelliJ IDEA est un IDE développé par JetBrains. |
Licence : commerciale, une version gratuite (Community Edition) existe
Statut : mises à jour régulières
Site web : www.jetbrains.com/idea/
Version |
Date de diffusion |
|
9.0 |
décembre 2009 |
|
10.0 | décembre 2010 | |
11 | décembre 2011 | |
12 | décembre 2012 | |
13 | décembre 2013 | |
14 | novembre 2014 | |
15 | ||
2016 | ||
2017 | ||
2018 | ||
2019 | ||
2020.1 | avril 2020 |
IntelliJ IDEA est proposé en deux éditions :
IntelliJ est disponible sous Windows, Linux et Mac OS X.
JDeveloper est un IDE riche en fonctionnalités qui couvre de nombreux aspects du développement : modélisation UML, écriture du code, débogage, tests, profiling et déploiement d'applications.
Licence : disponible gratuitement après un enregistrement chez OTN
Statut :
Site web : https://www.oracle.com/application-development/technologies/jdeveloper.html
Version |
Date de diffusion |
|
10.1.2 |
|
|
10.1.3 | ||
11g | avril 2010 | |
12c | juillet 2013 | version 12.2.1.3.0 publiée en août 2017 |
Ecrit en Java, JDeveloper est disponible sur plusieurs plates-formes : Windows, Mac, Linux et plusieurs Unix.
JDeveloper propose des extensions pour enrichir l'outil en fonctionnalités notamment celles proposées par des tiers.
JDeveloper propose bien sûr une intégration facilitée de plusieurs produits d'Oracle notamment la base de données et le serveur d'applications et surtout une forte intégration et une mise en oeuvre d'Oracle ADF.
JDeveloper version 10.1.2
Cette version propose de nombreuses fonctionnalités dont voici quelques-unes des plus intéressantes :
JDeveloper version 10.1.3
La version 10.1.3.2 apporte de nombreuses fonctionnalités et améliorations par rapport à la version précédente, en voici quelques-unes des plus importantes :
JDeveloper 10.1.3 est proposé en trois versions :
JDeveloper est particulièrement intéressant pour mettre en oeuvre le framework Oracle ADF.
Rational Application Developer for WebSphere Software repose sur la version 3.2 d'Eclipse et propose le développement d'applications web, de portails, d'applications d'entreprises ou standalones ou de services web pour mettre en oeuvre une SOA. Cet outil s'intègre parfaitement avec les outils IBM et Rational.
Licence : commerciale
Statut :
Site web : https://www.ibm.com/products/rad-for-websphere-software
Version |
Date de diffusion |
|
6.0 |
Janvier 2005 |
|
7.5 | repose sur Eclipse 3.4 | |
8.0 |
Novembre 2011 |
repose sur Eclipse 3.6 |
8.5 | repose sur Eclipse 3.6 avec support de Java 7 | |
9.0 | 2013 | repose sur Eclipse 4.2 |
9.7 | Novembre 2018 | repose sur Eclipse 4.7, support de Java EE 8 |
Rational Team Concert repose Eclipse et sur Jazz d'IBM pour la gestion collaborative et la gestion du cycle de vie des développements.
Licence : commerciale
Statut :
Site web :
Version |
Date de diffusion |
|
1.0 |
Juin 2008 |
|
2.0 |
Juin 2009 |
|
3.0 |
Novembre 2010 |
|
4.0 |
Juin 2012 |
|
5.0 |
Juin 2014 |
|
5.0.1 |
Septembre 2014 |
|
6.0 |
MyEclipse est un IDE basé sur Eclipse développé par Genuitec.
Licence : commerciale
Statut :
Site web : https://www.genuitec.com/products/myeclipse/
Version |
Date de diffusion |
|
5.1 |
|
|
7.0 | ||
7.1 | avril 2009 | |
7.5 | juin 2009 | |
8.0 | novembre 2009 | |
8.6 | novembre 2010 | |
9.1 | juillet 2011 | |
10.0 | novembre 2011 | |
10.6 | juillet 2012 | |
10.7 | ||
2013 | ||
2014 | ||
2015 | ||
2016 | Support de Java 8, repose sur Eclipse Mars | |
2017 | Support Angular 2 et 4 (CI 4), repose sur Eclipse Neon | |
2018 | août 2018 | Support de Java 10, Java EE 8, repose sur Eclipse Photon |
2019 | Support de Java 11, repose sur Eclipse 2018-12 | |
2020.5 | Support de Java 14, repose sur Eclipse 2020-03 | |
2020.9 | Support de Quarkus, Docker, repose sur Eclipse 2020-06 | |
2021.5 | Support de Java 15 et 16, Tomcat 9, Jakarta EE 9, repose sur Eclipse 2021-03 | |
2022.1 | Support de Java 17, Jakarta EE 9.1 et Vue, repose sur Eclipse 2021-12 | |
2023.1 | Support de Java 20, Jakarta EE 10, Spring 6, Spring Boot 3, Hibernate 6 |
MyEclipse regroupe de nombreux plugins dont certains sont inédits comme par exemple le portage de Matisse de NetBeans sur Eclipse.
Websphere Studio Application Developper (WSAD) représente le nouvel outil de développement d'applications Java/web d'IBM. Il représente une fusion de nombreuses fonctionnalités des outils Visual Age for Java et Websphere Studio. Le coeur de l'outil est composé par Websphere Studio Workbench dont une partie du code a été fournie à la communauté open source pour devenir le projet Eclipse.
Licence : commerciale
Statut : remplacé par le produit Rational Application Developer for WebSphere Software
Version |
Date de diffusion |
|
4.0 |
|
orienté développement Java/web : il ne permet pas de développement d'applications graphiques en mode RAD. |
Borland est spécialisé depuis des années dans la création d'outils de développement possédant une excellente réputation. Ainsi Jbuilder est un IDE ergonomique qui génère un code "propre". Depuis sa version 3.5, JBuilder est écrit en Java ce qui lui permet de s'exécuter sans difficulté sur plusieurs plates-formes notamment Windows, Linux ou Solaris.
Licence : commercial, une version (foundation) téléchargeable gratuitement
Statut :
Site web : https://www.embarcadero.com/products/jbuilder
Version |
Date de diffusion |
|
2006 |
|
existe en plusieurs éditions :
|
2007 |
|
basée sur Eclipse, maintenue et diffusée par sa filiale CodeGear ;
|
2008 | avril 2008 | |
2008 R2 | avril 2009 |
Le produit dispose de nombreuses caractéristiques qui facilitent le travail du développeur : la technologie CodeInsight facilite grandement l'écriture du code dans l'éditeur, de nombreux assistants facilitent la génération de code ...
L'environnement de développement intégré Java Studio Creator de Sun permet de générer des applications Web à l'aide de la technologie Java notamment avec les Java ServerFaces et les portlets.
Licence : gratuit
Statut : remplacé par NetBeans
Site web :
Sun Java Studio Creator version 1.0
Cette première version de l'outil est payante. C'est un des premiers outils à exploiter les possibilités pour faciliter la mise en oeuvre des JSF. |
Sun Java Studio Creator version 2.0
Cette seconde version est téléchargeable gratuitement après une inscription au SDN (Sun Developer Network). |
Java Studio Creator 2 utilise Netbeans 4.1 comme base. Le package d'installation contient un JDK, le serveur d'applications Sun Java System Application Server 8.x et une base de données
JCreator est un IDE développé par Xinox particulièrement rapide car il est écrit en code natif.
Licence : commerciale, une version gratuite (LE) est téléchargeable
Statut :
Site web :
Version |
Date de diffusion |
|
3.5 |
décembre 2004 |
|
4.0 |
mai 2006 |
Il existe deux éditions :
|
4.5 | aout 2007 | |
5.0 | mars 2010 |
BEA Workshop est une famille d'IDE développée par BEA qui utilise Eclipse comme base.
Licence :
Statut :
Site web :
Il existe plusieurs éditions :
IBM proposait une famille d'outils pour le développement avec différents langages dont une version dédiée à Java.
VAJ n'est plus supporté par IBM : il est remplacé par la famille d'outils Websphere Studio Application Developper.
Visual Age for Java (VAJ) était un outil novateur dans son ergonomie et son utilisation qui étaient complètement différentes des autres EDI. Les débuts de son utilisation étaient parfois déroutants mais la persévérance permettait de révéler toute sa puissance.
La fenêtre principale (plan de travail) est séparée en deux parties :
Par défaut le code est éditable par méthode mais depuis la version 3.5, il est toutefois possible de visualiser le code source complet, cependant, les opérations réalisables dans ce mode sont moins nombreuses.
VAJ possédait plusieurs points forts : le regroupement de toutes les classes et leur organisation dans l'espace de travail, la compilation incrémentale à l'écriture et au débogage, le travail collaboratif avec le contrôle de version dans un référentiel (repository). Tous ces points facilitaient le développement de gros projets.
VAJ était un outil puissant particulièrement adapté aux utilisateurs chevronnés pour de gros projets.
Webgain Studio proposait un ensemble d'outils (Visual Café, Dreamweaver Ultradev, Top link, Structure Builder, Weblogic) pour la création d'applications e-business. Visual Café a été un des premier IDE de développement en Java. Visual Café existait en trois versions : standard, expert et entreprise suite.
Malheureusement cet outil n'est plus disponible.
Les serveurs d'applications sont des outils qui permettent l'exécution de composants Java côté serveur (servlets, JSP, EJB, ... ) selon les spécifications de la plate-forme J2EE/Java EE.
JBoss est un projet open source développé en Java pour fournir un serveur d'applications certifié Java EE. |
Licence : open source, commerciale avec support
Statut : actif
Site web :
Version |
Date de diffusion |
|
4.0 | certifié J2EE 1.4 | |
4.2 |
|
support EJB 3.0 |
5.0 GA | décembre 2008 | |
5.1 GA | mai 2009 | certifié Java EE 5 |
6.0 | décembre 2010 | implémente le profile Web de Java EE 6 |
6.4 | avril 2015 | |
7.0 | mai 2016 | |
7.1.0 | décembre 2017 | |
7.2 | janvier 2019 | |
7.3 | mars 2020 |
JBoss est composé d'un ensemble d'outils : JBoss Server, JBoss MQ (implémentation de JMS), JBoss MX, JBoss TX (implémentation de JTA/JTS), JBoss SX , JBoss CX et JBoss CMP.
JBoss Widfly est un projet open source développé en Java pour fournir un serveur d'applications certifié Java EE. |
Licence : open source
Statut : actif
Site web : www.wildfly.org/
Version |
Date de diffusion |
|
8.0 | Février 2014 | certifié pour le full profile Java EE 7 |
8.2.0 | Novembre 2014 | |
9 | Juillet 2015 | |
10 | Janvier 2016 | |
11 | Octobre 2017 | |
12 | Février 2018 | |
13 | Mai 2018 | |
14 | Août 2018 | Certifiée Java EE 8 |
15 | Décembre 2018 | Support de Java 11 |
16 | Février 2019 | |
17 | Juin 2019 | la version 17.0.1 est certifiée Java EE 8 et Jakarta EE 8 |
17.1 | Certifiée Java EE 8 et Jakarta EE 8 | |
18 | Octobre 2019 | |
19 | Mars 2020 | |
19.1 | Mai 2020 | |
20.0 | juin 2020 | |
21.0 | octobre 2020 | |
22.0 | janvier 2021 | |
23.0 | mars 2021 | |
24.0 | juin 2021 | |
25.0 | octobre 2021 | |
26.0 | décembre 2021 | |
26.1 | avril 2022 | |
27 | novembre 2022 | Support Jakarta EE 10 |
28 | avril 2023 | |
29 | juillet 2023 | |
30 | octobre 2023 |
JOnAS (Java Open Application Server) est un projet open source développé par le consortium ObjectWb / OW2 (Bull, INRIA, France Telecom) dont le but est de proposer un serveur d'applications Java EE. Il se compose de nombreux éléments open source tels que JOTM pour le support des transactions, JORAM pour l'implémentation de JMS, Tomcat ou Jetty comme conteneurs Web, Speedo pour l'implémentation JDO, ... |
Licence : open source
Statut : projet abandonné en 2015
Site web : https://jonas.ow2.org/
Version |
Date de diffusion |
|
2.3.1 |
février 2005 |
certifié J2EE 1.4. |
5.1 | mars 2009 | certifié Java EE 5 |
5.1.4 | novembre 2010 | |
5.2.2 | juillet 2011 | |
5.2.3 | mars 2012 | |
5.3 | octobre 2013 | certifié Java EE 6 web profile |
Le projet GlassFish est un projet communautaire dont le but est de développer un serveur d'applications open source qui implémente les spécifications de Java EE à partir de la version 5. Il est l'implémentation de référence de ces spécifications. |
Licence : open source, commercial avec support
Statut : actif
Site web : https://javaee.github.io/glassfish/ jusqu'à GlassFish 5.1, https://glassfish.org/ pour les versions ultérieures
Version |
Date de diffusion |
|
|
mai 2006 |
support Java EE 5 |
2.0 | septembre 2007 | |
2.1 | janvier 2009 | |
3.0 | décembre 2009 | implémentation de référence de Java EE 6 |
3.0.1 | juin 2010 | |
3.1 | février 2011 | cluster / haute disponibilité |
3.1.1 | juillet 2011 | |
3.1.2 | février 2012 | |
4.0 | juin 2013 | support Java EE 7 |
4.1 | septembre 2014 | |
5.0 | septembre 2017 | implémentation de référence de Java EE 8 |
5.1 | janvier 2019 | première release par la fondation Eclipse sous licence EPL |
6.0 | décembre 2020 | Implémentation de référence de Jakarta EE 9 (packages javax.* en jakarta.*) |
6.1 | mai 2021 | Implémentation de référence de Jakarta EE 9.1 |
7.0 | décembre 2022 | Implémentation de référence de Jakarta EE 10 |
Sun propose le serveur d'applications Java System Application Server Platform Edition 9 qui implémente les spécifications de Java EE 5. Ce serveur gratuit est basé sur le projet GlassFish. Il peut être téléchargé dans une archive avec le SDK.
A partir de la version 5, le développement de Glassfish est effectué par la fondation Eclipse.
Le projet Epache TomEE est une combinaison de plusieurs projets de la fondation Apache pour fournir un serveur d'applications Java EE articulé autour de Tomcat. |
Licence : open source
Statut : actif
Site web : https://tomee.apache.org/
Version |
Date de diffusion |
|
1.7.1 | septembre 2014 | Certifié Java EE 6 Web Profile |
7.0.0 | mai 2016 | Support de Java EE 7, repose sur Tomcat 8.5 |
7.1.0 | septembre 2018 | Support de Microprofile 1.4 |
8.0.0 | septembre 2019 | Support de Java EE 8 / Jakarta EE 8, Microprofile 2.0, repose sur Tomcat 9, requiert Java 8 |
8.0.1 | janvier 2020 | |
9.0.0 | janvier 2023 | Repose sur Tomcat 10, requiert Java 11 |
9.1.0 | juin 2023 | Support de Jakarta EE 9.1 Web Profile et MicroProfile 5 |
Apache TomEE utilise des composants de la foncdation Apache :
Composant | Description |
---|---|
Apache Tomcat | Conteneur Web : HTTP, Servlet, JSP |
Apache OpenEJB | Conteneur pour Enterprise JavaBeans |
Apache OpenWebBeans | Implémentation de CDI |
Apache OpenJPA | Implémentation de JPA |
Apache MyFaces | Implémentation de JSF |
Apache ActiveMQ | Implémentation de JMS |
Apache CXF | Implémentation des Web Services SOAP (JAX-WS) et RESTful (JAX-RS) |
Apache Derby | Base de données relationnelles |
Apache Geronimo transaction | Implémentation de JTA |
Apache BVal | Implémentation de Bean validation |
TomEE est diffusé en plusieurs éditions selon les besoins :
Edition | Description |
---|---|
Web Profile : certifié Java EE 6 Web Profile | Servlets, JSP, JSF, JTA, JPA, CDI, Bean Validation et EJB Lite |
JAX-RS : certifié Java EE 6 Web Profile | Edition Web Profile, JAX-RS |
Plus | Edition JAX-RS, EJB Full, JMS, JCA, JAX-WS |
Plume | Edition Plus, Mojarra, EclipseLink |
Websphere Application Server (WAS) est le serveur d'applications de la famille d'outils Websphere. Il permet le déploiement de composants Java orientés entreprise. |
Licence : commerciale
Statut : actif
Site web : https://www.ibm.com/software/webservers/appserv/was/
Version |
Date de diffusion |
|
3.5 | aout 2000 | support J2EE 1.2, requiert Java SE 1.2 3 éditions sont proposées :
|
4 | aout 2001 | certifié J2EE 1.2, requiert Java SE 1.3 Elle permet la mise en oeuvre des servlets, JSP, EJB et services Web (SOAP, UDDI, WSDL, XML). Cette version est proposée en 4 éditions qui supportent tout ou partie de ces composants :
|
5 |
janvier 2003 |
certifiée J2EE 1.3 plusieurs versions sont proposées :
|
5.1 | janvier 2004 | requiert Java SE 1.4 |
6 | décembre 2004 | certifiée J2EE 1.4 Plusieurs versions sont proposées dont la Community Edition (gratuite) basée sur Apache Geronimo et une version pour z/OS support EJB 3.0 |
6.1 | juin 2006 | requiert Java SE 5 |
7 | septembre 2008 | certifié Java EE 5, requiert Java SE 6 |
8 | juin 2011 | certifié Java EE 6, requiert Java SE 6 |
8.5 | juin 2012 | peut fonctionner avec Java SE 7 |
8.5.5 | juin 2013 | |
9.0 | juin 2016 | Java EE 7 et Java SE 8 |
Weblogic est une famille de produits proposés par BEA. Weblogic Server est un des leaders mondiaux des serveurs d'applications commerciaux. Weblogic a été racheté par Oracle. |
Licence : commerciale
Statut : actif
Site web : https://www.oracle.com/middleware/technologies/weblogic.html
Version |
Date de diffusion |
|
6.0 | mars 2001 | |
7.0 | juin 2002 | support J2EE 1.3, Java SE 1.3 |
8.1 | juillet 2003 | support J2EE 1.3, Java SE 1.4 |
9.0 | novembre 2006 | support J2EE 1.4, Java SE 5 |
10.0 | mars 2007 | support Java EE 5, Java SE 5 |
10.3 | aout 2008 | Java EE 5, Java SE 6 |
11g (10.3.1) | juillet 2009 | Java EE 5, Java SE 6 |
11g R1 (10.3.2) | novembre 2009 | Java EE 5, Java SE 6 |
11g R1 (10.3.3) |
avril 2010 |
Java EE 5, Java SE 6 |
11g R1 (10.3.4) |
janvier 2011 |
Java EE 5, Java SE 6 |
11g R1 (10.3.5) |
mai 2011 |
Java EE 5, Java SE 6 |
12c |
décembre 2011 |
Java EE 6, Java SE 7 |
12c R2 (12.2.1.0) | octobre 2015 | Java EE 6, Java SE 7 |
12c R2 (12.2.1.3) | août 2017 | Java EE 7, Java SE 8 |
Oracle propose un serveur d'applications certifié Java EE. |
Licence : commerciale
Statut :
Site web :
Version |
Date de diffusion |
|
10g |
|
|
11g |
JRun est l'implémentation d'un serveur d'applications de Macromedia.
Licence : commerciale
Statut : ce produit n'est plus maintenu depuis 2007
Site web : http://www.adobe.com/products/jrun/
Version |
Date de diffusion |
|
4 |
|
certifié J2EE 1.3 |
Les conteneurs web sont des applications qui permettent d'exécuter du code Java utilisé pour définir des servlets et des JSP.
Tomcat est un conteneur d'applications web (servlets et JSP) développé par la fondation Apache. C'est l'implémentation de référence pour les API servlets et JSP : il est donc pleinement compatible avec les spécifications J2EE de ces API. |
https://jakarta.apache.org/tomcat/
L'utilisation de Tomcat est détaillée dans le chapitre «Tomcat».
Resin est un moteur de servlets et de JSP qui intègre un serveur web.
Enhydra est un projet open source, initialement créé par Lutris Technologies, pour développer un conteneur web pour Servlets et JSP. Il fournit quelques fonctionnalités supplémentaires pour utiliser XML, mapper des données avec des objets et gérer un pool de connexions vers des bases de données |
Les conteneurs d'EJB sont des applications qui fournissent un environnement d'exécution pour les EJB.
OpenEJB est un projet open source pour développer un conteneur d'EJB qui respecte les spécifications 2.0 des EJB. La version 1.0 est distribuée depuis février 2006.
Le site du projet est l'url https://openejb.apache.org/
Jikes est un compilateur Java open source écrit par IBM en code natif pour Windows et Linux. Son exécution est donc extrêmement rapide ce qui est d'autant plus appréciable lorsqu'il s'agit de compiler de très gros projets sur une machine peu véloce.
La page de l'outil est à l'url http://jikes.sourceforge.net/
Pour utiliser Jikes, il suffit de décompresser l'archive et de mettre le fichier exécutable dans un répertoire inclus dans le CLASSPATH. Enfin, il faut déclarer une variable système JIKESPATH qui doit indiquer les différents répertoires contenant les classes et les jars notamment le fichier rt.jar du JRE.
GCJ faisait parti du projet GCC (GNU Compiler Collection). Le projet GCC propose un compilateur pour plusieurs langages (C, C++, Objective C, Java ...) permettant de produire un exécutable pour plusieurs plates-formes. |
GCJ était donc un front-end pour utiliser GCC à partir du code Java. Il permet notamment de :
Pour un exécutable, le fichier final est lié avec une bibliothèque dédiée nommée libgcj qui contient, entre autres, les classes de bases et le ramasse-miettes.
La plupart des API de la plate-forme Java 2 sont supportées à l'exception notable de la bibliothèque AWT.
Son utilisation sous Windows nécessite un environnement particulier : CygWin ou MinGW (ce dernier étant retenu dans la suite de cette section).
Téléchargez sur le site https://osdn.net/projects/mingw/ les fichiers : MinGW-3.1.0-1.exe (14,5 Mo) et MSYS-1.0.9.exe (2,7 Mo). (les noms de fichiers indiqués correspondent à la version courante au moment de l'écriture de cette section).
Lancez le programme MinGW-3.1.0-1.exe
Le programme d'installation se lance et demande une confirmation de l'installation : cliquer sur « Oui ». Un assistant permet de guider les différentes étapes de l'installation :
Lancez le programme MSYS-1.0.9.exe
Le programme d'installation se lance et demande une confirmation de l'installation : cliquer sur « Oui ». Un assistant permet de guider les différentes étapes de l'installation :
Exemple : |
C:\MinGW\msys\1.0\postinstall>..\bin\sh.exe pi.sh
This is a post install process that will try to normalize between
your MinGW install if any as well as your previous MSYS installs
if any. I don't have any traps as aborts will not hurt anything.
Do you wish to continue with the post install? [yn ] y
Do you have MinGW installed? [yn ] y
Please answer the following in the form of c:/foo/bar.
Where is your MinGW installation? c:/Mingw
Creating /etc/fstab with mingw mount bindings.
Normalizing your MSYS environment.
You have script /bin/awk
You have script /bin/cmd
You have script /bin/echo
You have script /bin/egrep
You have script /bin/ex
You have script /bin/fgrep
You have script /bin/printf
You have script /bin/pwd
You have script /bin/rvi
You have script /bin/rview
You have script /bin/rvim
You have script /bin/vi
You have script /bin/view
Oh joy, you do not have c:/Mingw/bin/make.exe. Keep it that way.
C:\MinGW\msys\1.0\postinstall>pause
Appuyez sur une touche pour continuer...
Remarque : il est fortement recommandé de ne pas utiliser d'espace dans les noms des répertoires d'installation de MinGW et de MSYS.
Il faut pour plus de facilité d'utilisation ajouter à la variable PATH de l'environnement système les répertoires C:\MinGW\bin et C:\MinGW\msys\1.0\bin.
La version de GCC fournie avec MinGW précédemment installée est la 3.2. Pour utiliser GCJ, il faut utiliser la 3.3 et donc opérer une mise à jour.
Il faut télécharger les fichiers gcc-core-3.3.1-20030804-1.tar.gz, gcc-g++-3.3.1-20030804-1.tar.gz et gcc-java-3.3.1-20030804-1.tar.gz, les décompresser et extraire l'image tar dans le répertoire c:\MinGW.
Remarque : en standard aucun outil ne permet de traiter des fichiers gz et tar. Il faut utiliser un outil tiers.
Pour s'assurer de la bonne installation, il suffit d'ouvrir une boîte DOS et d'exécuter la commande gcj. Le message suivant doit apparaître : gcj: no input files
Voici un petit exemple très simple de mise en oeuvre de GCJ.
Exemple du code à compiler : |
public class Bonjour {
public static void main(String[] args) {
System.out.println("Bonjour");
}
}
Exemple de compilation et d'exécution : |
D:\java\test\gcj>gcj -o Bonjour Bonjour.java -O --main=Bonjour
D:\java\test\gcj>dir
Le volume dans le lecteur D s'appelle DATA
Le numéro de série du volume est 34B2-159D
Répertoire de D:\java\test\gcj
01/12/2003 15:19 <DIR> .
01/12/2003 15:19 <DIR> ..
01/12/2003 15:19 2 747 919 Bonjour.exe
01/12/2003 15:17 108 Bonjour.java
01/12/2003 14:07 141 Bonjour.java.bak
4 fichier(s) 5 496 087 octets
2 Rép(s) 560 402 432 octets libres
D:\java\test\gcj>bonjour
Bonjour
D:\java\test\gcj>
L'option -o permet de préciser le nom du fichier final généré.
L'option -main= permet de préciser la classe qui contient la méthode main() à lancer par l'exécutable.
GCJ peut être utilisé pour compiler le code source en bytecode grâce à l'option -C.
Exemple : |
D:\java\test\gcj>gcj -C Bonjour.java
D:\java\test\gcj>dir
Le volume dans le lecteur D s'appelle DATA
Le numéro de série du volume est 34B2-159D
Répertoire de D:\java\test\gcj
01/12/2003 15:29 <DIR> .
01/12/2003 15:29 <DIR> ..
01/12/2003 15:29 389 Bonjour.class
01/12/2003 15:19 2 747 919 Bonjour.exe
01/12/2003 15:17 108 Bonjour.java
4 fichier(s) 2 748 557 octets
Le bytecode généré est légèrement plus compact que celui généré par la commande javac du jdk 1.4.1
Exemple : |
D:\java\test\gcj>javac Bonjour.java
D:\java\test\gcj>dir
Le volume dans le lecteur D s'appelle DATA
Le numéro de série du volume est 34B2-159D
Répertoire de D:\java\test\gcj
01/12/2003 15:29 <DIR> .
01/12/2003 15:29 <DIR> ..
01/12/2003 15:31 405 Bonjour.class
01/12/2003 15:19 2 747 919 Bonjour.exe
01/12/2003 15:17 108 Bonjour.java
4 fichier(s) 2 748 573 octets
L'option -d permet de préciser un répertoire qui va contenir les fichiers .class générés par l'option -C.
Artistic Style est un outil open source qui permet d'indenter et de formater un code source C, C++ et java
Le site du projet est à l'url https://sourceforge.net/projects/astyle/
Cet outil possède de nombreuses options de formatage de fichiers sources. Les options les plus courantes pour un code source Java sont :
astyle -jp --style=java nomDuFichier.java
Par défaut, l'outil conserve le fichier original en le suffixant par .orig.
Les Middleware Oriented Message sont des outils qui permettent l'échange de messages entre des composants d'une application ou entre applications. Pour pouvoir les utiliser avec Java, ils doivent implémenter l'API JMS (Java Message Service).
ActiveMQ est un projet de la foundation Apache qui propose une implémentation d'un broker JMS respectant la version 1.1 des spécifications.
Licence : open source (licence Apache 2.0)
Statut :
Site web : https://activemq.apache.org/
Il n'est pas nécessaire de déclarer les queues utilisées dans la configuration : ActiveMQ crééra automatiquement les queues qui sont utilisées.
La gestion et le monitoring d'ActiveMQ se fait grâce à JMX.
Des clients utilisant différents langages (.Net, Delphi, C/C++; ...) peuvent accéder à ActiveMQ grâce à son support de différents protocoles.
ActiveMQBrowser est un outil très pratique pour gérer le contenu des queues et topics d'une instance d'ActiveMQ.
Il faut télécharger la dernière version de l'archive à l'url https://sourceforge.net/projects/activemqbrowser/files/ et la décompresser dans un répertoire du système de fichiers.
Pour permettre la connection au Broker, il est nécessaire de le configurer.
Il faut modifier le fichier activemq.xml contenu dans le sous-répertoire conf du répertoire d'installation d'ActiveMQ. Dans le tag <broker>, il faut définir deux propriétées :
Exemple : |
<broker xmlns="http://activemq.apache.org/schema/core"
brokerName="localhost_AMQ"
dataDirectory="${activemq.data}"
useJmx="true">
Il faut modifier le fichier activemq.bat contenu dans le sous-répertoire bin du répertoire d'installation d'ActiveMQ en définissant la variable d'environnement SUNJMX :
Résultat : |
set
SUNJMX=-Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.port=1099
-Dcom.sun.management.jmxremote.authenticate=true -Dcom.sun.management.jmxremote.ssl=false
-Dcom.sun.management.jmxremote.password.file=%ACTIVEMQ_BASE%/conf/jmx.password
-Dcom.sun.management.jmxremote.access.file=%ACTIVEMQ_BASE%/conf/jmx.access
Cette configuration va activer l'accès JMX sur le port 1099 avec une authentification définie dans les fichiers jmx.access (pour définir les rôles) et jmx.password (pour définir les utilisateurs/mots de passe) du sous-répertoire conf.
Pour lancer ActiveMQBrowser, il faut lancer le script run_activemq_browser.bat contenu dans le répertoire d'installation d'ActiveMQBrowser.
Pour utiliser ActiveMQBrowser avec la version 5.9 d'ActiveMQ, il faut effectuer plusieurs opérations :
Dans le répertoire d'installation d'ActiveMQBrowser, il faut remplacer les fichiers activemq-all-5.6.0.jar et activemq-web-5.6.0.jar par leur équivalent en version 5.9.
Il faut modifier le script en remplaçant les versions 5.6 d'activemq-all.jar et activemq-web.jar par la version 5.9
Résultat : |
echo off
start "ActiveMQBrowser"
javaw -Xms128m -Xmx512m -splash:cube.png -cp .\QBrowserV2_Neo.jar;
.\activemq-web-5.9.0.jar;.\activemq-all-5.9.0.jar;.\jide-oss-2.6.2.jar;
.\imq.jar;.\jms.jar;.\imqadmin_ja.jar;.\imqadmin.jar;.\imqutil_ja.jar;
.\imqutil.jar;.\imqjmx.jar;.\imqjmx_ja.jar com.qbrowser.ActiveMQBrowser
OpenJMS est une implémentation Open Source des spécifications JMS |
Le site officiel du projet est à l'url http://openjms.sourceforge.net/
Pour utiliser OpenJMS, il faut télécharger l'archive qui contient OpenJMS : par exemple le fichier openjms-0.7.7-beta-1.zip
Pour installer OpenJMS, il suffit de décompresser le fichier zip téléchargé dans un répertoire du système.
Exemple : |
C:\java>jar xvf openjms-0.7.7-beta-1.zip
La décompression crée un répertoire nommé openjms-0.7.7-beta-1
Pour démarrer et arrêter le serveur, il faut utiliser respectivement les scripts startup et shutdown du sous-répertoire bin du répertoire d'installation.
Pour lancer la console d'administration, il faut utiliser le script admin.
Cliquez sur « Actions / Connections / OnLine ».
Il est alors possible d'écrire une application qui utilise JMS et les queues, par exemple l'application TestOpenJMS1 fournie dans le chapitre sur «JMS (Java Message Service)».
Les paramètres JNDI peuvent être fournis dans un fichier de configuration nommé jndi.properties :
Exemple : jndi.properties |
java.naming.provider.url=tcp://localhost:3035
java.naming.factory.initial=org.exolab.jms.jndi.InitialContextFactory
java.naming.security.principal=admin
java.naming.security.credentials=openjms
Dans la console d'administration, cliquez sur « Actions / Refresh ».
La configuration des queues est stockée dans le fichier openjms.xml. La console d'administration permet de gérer les destinations (ajout, suppression, ...)
Joram est l'acronyme de Java Open Reliable Asynchronous Messaging. C'est une implémentation open source des spécifications JMS 1.1.
La page officielle de cet outil est à l'url https://joram.ow2.io/
Open Source Message Queue (OSMQ) est un middleware orienté messages développé en open source par Boston System Group.
Derby est un SGBDR open source écrit en Java et maintenu par le projet Apache. |
Historiquement, c'est un produit développé par Cloudscape acquis par IBM (lors de son rachat d'Informix) qui en a fait don à la fondation Apache.
Derby est aussi intégré dans des produits de Sun notamment le JDK 6.0 et GlassFish sous le nom Java DB
Le site officiel est à l'url https://db.apache.org/derby/
Squirrel-SQL est un client SQL open source écrit en Java. Il permet au travers d'une interface graphique de consulter et de manipuler une base de données pourvue d'un pilote JDBC.
Le site de l'outil est à l'url : https://squirrel-sql.sourceforge.io/
L'éditeur SQL propose une assistance à l'achévement du code (nom de table, de colonnes, ...).
Les données sont éditables dans l'interface graphique.
SQuirrel est extensible au travers de plug-in dont plusieurs sont fournis par défaut.
Pour installer Squirrel il faut télécharger le fichier squirrel-sql-<version>-install.jar qui est un setup d'installation au format IzPack.
Pour exécuter l'installation, il faut saisir la commande :
java -jar squirrel-sql-<version>-install.jar
Argo UML est un projet open source écrit en Java qui vise à développer un outil de modélisation UML 1.1. Il est possible de créer des diagrammes UML et de générer le code Java correspondant aux diagrammes de classes. Une option permet de créer les diagrammes de classes à partir du code source Java.
Cet outil n'est pas encore en version finale mais la version 0.9.5 offre de nombreuses fonctionnalités.
Plusieurs éditions de Poseidon for UML sont proposées dont la version Community Edition qui est disponible gratuitement.
La version 4.1 propose de nombreuses fonctionnalités dont le respect de la version UML 2.0
StarUML est historiquement un produit commercial nommé Plastic puis Agora Plastic, qui est devenu un projet open source (licence GPL) en 2005 et renommé StarUML. Le site officiel de StarUML est à l'url https://staruml.io/ |
Il ne fonctionne que sous Windows mais la version 5.0 propose des fonctionnalités intéressantes :
Développons en Java v 2.40 Copyright (C) 1999-2023 Jean-Michel DOUDOUX. |