Developpement Java Premiers Pas
Developpement Java Premiers Pas
Technologies de l'information
et de la communication (TIC) 19 août 2005
Le projet Eclipse ([Link]) a été mis sur pied dans le but de développer une plate-forme universelle
permettant d'intégrer différents outils et en particulier, des outils de développement. L'environnement de
développement Java du projet Eclipse se nomme JDT (Java Development Tooling).
Le projet Eclipse géré de manière communautaire (par un consortium nommé Eclipse Foundation auquel
participent de grandes sociétés : IBM, Borland, HP, Intel, …) propose une architecture ouverte (open-
source) et extensible qui se base sur la notion de plug-ins (briques logicielles). Eclipse est écrit en Java.
N OT I ON DE W ORK SPACE
L'environnement Eclipse utilise un espace de travail (un répertoire) appelé Workspace qui sert à
enregistrer :
les paramètres de configuration de l'environnement de développement
les méta-informations (informations sur les projets, les ressources, …)
les projets ainsi que toutes les ressources associées (fichiers sources, fichiers compilés,
documentation, fichiers jar, images, etc.).
Perspectives
Projects
Source Code
Editors
Outline View
Package
Explorer
View
Problems and
Console Views
A U T RES PERSPECT I V ES
Il existe un certain nombre de perspectives pré-définies qui permettent d'avoir plusieurs points de vues
différents d'un même projet.
Toute écriture de code Java doit se faire dans le cadre d'un projet qu'il faut préalablement créer.
Plusieurs projets indépendants peuvent être créés dans le même Workspace.
Un projet peut contenir un nombre quelconque de ressources (classes, packages, dossiers, fichiers,
applications, …) et un certains nombre de propriétés lui sont associées (menu Project Properties).
La création d'un projet s'effectue à l'aide du menu File New Project Java Project ou en
utilisant le bouton Java Project (ou, si l'on est déjà dans la perspective Java, directement avec le
bouton de la barre d'outils).
Dans la première fenêtre de l'assistant, il suffit de mentionner le nom du projet dans le champ "Project
name:". Par défaut, le projet sera créé dans le Workspace courant (un sous-répertoire portant le nom du
projet sera créé).
Une deuxième fenêtre de l'assistant permet de définir certaines propriétés du projet (ressources
nécessaires, librairies, JRE, etc.). Pour les projets simples, il n'est pas nécessaire de modifier les valeurs
proposées, vous pouvez donc cliquer sur le bouton Finish après la première fenêtre.
Après avoir créé un projet Java, l'environnement Eclipse propose de passer (ou passe automatiquement,
selon la configuration) dans la perspective Java.
Dans la vue Package Explorer, on trouve la liste des projets référencés dans le Workspace. Les projets
peuvent être ouverts ou fermés à l'aide du menu contextuel (Open Project / Close Project). Il est
conseillé de fermer les projets sur lesquels vous ne travaillez pas car les projets ouverts consomment
des ressources et sont pris en considération lors de l'opération de compilation (Rebuild).
La création d'une classe Java s'effectue à l'aide du menu File New Class (ou avec le bouton
de la barre d'outils).
Dans la première fenêtre de l'assistant, il suffit de mentionner le nom de la classe dans le champ
"Name:" et de spécifier éventuellement (c'est fortement recommandé) le nom du package dans le
champ "Package".
Si l'on laisse le champ Package vide, la classe sera créée dans le paquetage par défaut qui sera alors
identifié par " (default package)" dans la vue Package Explorer. Le fichier source sera créé dans le
répertoire du projet ou dans le répertoire défini dans les préférences (champ Source folder name du
menu Window Preferences Java Build Path).
Différentes options (cases à cocher) permettent de gérer les modificateurs de la classe et d'insérer du
code dans la classe (création d'une méthode main() par exemple).
En cliquant sur le bouton Finish , la classe est créée dans le projet sélectionné (on la voit apparaître
dans le Package Explorer) et le fichier source est ouvert dans une nouvelle fenêtre d'édition.
Attention : Dans l'environnement Eclipse, le nom du package détermine non seulement l'emplacement
du fichier compilé (comme l'exige le langage Java) mais également l'emplacement du fichier
source (sous-répertoire dans l'arborescence du projet).
Si l'on souhaite placer la classe dans un package, il est donc important de mentionner le
nom du package dans le fenêtre de l'assistant car, une fois le fichier source créé (sans
indication de package), on ne peut pas simplement ajouter la pseudo-instruction package
dans le code source. Il faut encore déplacer le fichier dans un répertoire portant le nom du
package.
Pour ouvrir un fichier source dans l'éditeur il suffit de double-cliquer sur son nom dans le Package
Explorer. Plusieurs fenêtres d'édition peuvent être ouvertes simultanément (accessibles par des onglets).
L'éditeur d'Eclipse possède beaucoup de fonctionnalités permettant de simplifier l'écriture de code Java
et de nombreux aspects sont configurables (menu Window Preferences Java Editor).
Certaines erreurs sont déjà détectées durant l'édition du code source (introspection continue de tous les
fichiers sources des projets ouverts).
U ndo / Re do
Les dernières actions d'édition peuvent être annulées avec la fonction Undo disponible dans le menu
Edit Undo ou en utilisant le raccourci associé Ctrl+ Z.
Les dernières actions annulées peuvent être ré-exécutées avec la fonction Redo disponible dans le
menu Edit Redo ou en utilisant le raccourci associé Ctrl+ Y.
Code Folding
Certaines structures du code (classes, méthodes, instructions d'importation,
…) peuvent être temporairement réduites à une seule ligne en cliquant sur
les flèches placées dans la marge gauche de la fenêtre d'édition.
Cette technique appelée code folding permet d'avoir une vue d'ensemble
de la structure du code en masquant les détails de certaines régions.
Un nouveau clic sur la flèche d'une structure réduite permet de revenir à
l'affichage intégral du code pour la structure considérée.
Ces fragments de code appelés Templates peuvent être créés en utilisant le menu Window
Preferences Java Editor Templates puis en cliquant sur le bouton New . Différentes
variables pré-définies peuvent être utilisées (date courante, nom de la méthode englobante, code
sélectionné, etc.) lors de la création de ces Templates.
Un certain nombre de Templates sont pré-définis. Ils correspondent aux instructions de base du langage
Java ainsi qu'à certaines balises de documentation (Javadoc).
D'autres fragments de code automatiquement insérés lors de la création de classes, constructeurs,
méthodes, etc. peuvent être définis en utilisant le menu Window Preferences Java Code
Style Code Templates
Le menu Project Build Project permet de forcer la compilation (Full Build) de tout un projet. Le
menu Project Clean… forcera une recompilation complète du projet lors de la prochaine sauvegarde.
Les erreurs de compilation sont signalées dans les marges gauche et droite de la fenêtre d'édition ainsi
que dans la vue Problems où se trouvent les messages associés à chacune des erreurs.
L'exécution d'une application (classe contenant une méthode main()) peut s'effectuer de différentes
manières (Le menu Run rassemble la plupart des fonctions liées à l'exécution des applications).
Pour une application simple (sans paramètres de lancement) on peut utiliser le menu déroulant du
bouton et sélectionner l'option Run As Java Application. Cela lancera la méthode main() du
fichier source actuellement actif dans l'éditeur et créera automatiquement une configuration d'exécution
par défaut.
Une application peut également être lancée en invoquant le menu contextuel du Package Explorer ou de
la vue Outline (Run Java Application) en se positionnant préalablement sur la classe concernée.
Il est également possible de définir manuellement une configuration d'exécution réutilisable à laquelle
on donnera un nom et qui mémorisera toutes les informations de lancement.
Pour définir une configuration d'exécution, on peut utiliser le menu déroulant du bouton et
sélectionner l'option Run… qui démarre un assistant permettant de définir tous les paramètres de
lancement et de les mémoriser sous un nom donné (champ "Name:").
Le lancement d'une application à partir d'une configuration d'exécution existante s'effectue en utilisant
le menu déroulant du bouton et en sélectionnant l'option Run… qui affichera la liste de toutes les
configurations d'exécution disponibles. Une liste des dernières applications lancées est également
disponible (accès direct).
Le lancement d'une application en mode Debug provoque l'affichage d'une perspective pré-définie. Cette
perspective appelée Debug affiche différentes vues spécifiques à ce mode de travail.
Threads Variables
Current
Statement
Breakpoint
Console
Pour définir un point d'arrêt (Breakpoint) il suffit d'effectuer un double-clic dans la marge gauche de
l'éditeur (quelle que soit la perspective utilisée). Un point bleu ( ) confirme visuellement l'emplacement
du point d'arrêt (attention : des points d'arrêt ne sont possibles qu'avant une instruction exécutable, on ne
peut pas, par exemple, placer un point d'arrêt sur une déclaration de variable locale ou sur une accolade
de début ou de fin de bloc d'instructions).
Lorsque le programme est suspendu, le contenu des variables peut être consulté en utilisant la vue
"Variables" ou en positionnant le curseur (dans le code source) sur la variable à inspecter ce qui va
provoquer l'affichage d'une bulle d'aide (Tooltip) indiquant le contenu de la variable.
On peut exécuter un programme pas à pas à l'aide des commandes Step Over ( / F6) ou Step Into
( / F5), poursuivre jusqu'au prochain Breakpoint avec Resume ( / F8) ou arrêter l'application ( ).
Il est possible d'évaluer des expressions, de modifier la valeur de certaines variables et même - dans
certaines limites - de modifier le code source avant de reprendre l'exécution du programme (Resume ).
Consulter la documentation (Help) pour découvrir les riches fonctionnalités offertes par le debugger.
Pour supprimer un fichier source ou une autre ressource (dossier, package, …) du projet, il suffit, dans le
Package Explorer, d'invoquer l'option Delete du menu contextuel de la ressource considérée.
Attention : Cette option efface définitivement du répertoire le fichier associé à la ressource (le fichier
source .java par exemple).
Pour supprimer un projet, il suffit, dans le Package Explorer, d'invoquer l'option Delete du menu
contextuel du projet considéré.
Vous pouvez choisir de supprimer le projet sans supprimer les ressources associées (les sous-
répertoires et les fichiers) qui se trouvent dans le répertoire ou alors d'effacer définitivement toutes les
ressources.
Remarque : La fonction d'importation (Menu File I mport… Existing Project into Workspace)
permet de restaurer un projet effacé dont on a conservé toutes les ressources.
Si l'on souhaite importer du code source existant dans un projet il y a plusieurs manière de procéder. Le
choix de la méthode à utiliser dépend de l'emplacement du code source et de la forme sous laquelle il
est disponible.
Remarque : Cette technique d'importation fonctionne bien s'il y a peu de classes à importer, si le code
source n'est pas disponible sur un serveur de fichiers et/ou si le code source n'est pas dans
un format directement importable.
1) Sélectionner le fichier archive contenant les fichiers à importer (From archive file)
(des options de filtrage sont disponibles en pressant sur le bouton Filter Types…).
2) Indiquer dans quel projet, dossier, package les fichiers doivent être importés (Into folder)
(le répertoire actuellement sélectionné dans le Package Explorer est proposé par défaut).
Remarques : Si le fichier ZIP est disponible sur un serveur WEB ou FTP, un téléchargement dans un répertoire
temporaire est préalablement nécessaire.
L'emplacement des fichiers sources doit respecter l'arborescence des packages définie par les
directives package… de ces fichiers sources (généralement, le contenu du fichier ZIP est structuré
de manière à respecter cette arborescence, mais ce n'est pas obligatoirement le cas).
Si nécessaire, la fonction Move (Refactor Move…) permet de déplacer ultérieurement des
fichiers sources d'un package à un autre (également possible par Drag&Drop).
Si un projet nécessite l'utilisation d'une classe ou d'une librairie externe, il faut l'indiquer en complétant le
Build Path enregistré dans les propriétés du projet (accès par le menu Project Properties ou par le
menu contextuel Properties du projet).
Il faut ensuite aller dans la branche Java Build Path et sélectionner l'onglet Libraries :
Cliquer ensuite sur OK (4 fois) pour fermer toutes les boîtes de dialogue.
La librairie externe n'est pas incluse dans le Workspace mais simplement référencée dans le dossier qui
a été créé (Linked Folder).
Cliquer ensuite sur Open puis OK pour fermer les boîtes de dialogue.
Dans le Package Explorer, les librairies externes sont représentées, dans l'arborescence du projet, par
des icônes spécifiques selon le type de librairie : fichiers .class ( ) ou fichier JAR ( ).
Il faut ensuite aller dans la branche Java Build Path, sélectionner l'onglet Projects et sélectionner les
projets qui doivent être inclus dans la liste des emplacements à considérer lors de la recherche de
ressources (Build Path) :
Remarque : Seuls les projets ouverts peuvent être désignés comme emplacements à considérer lors de la recherche
de ressources. Les projets contenant des librairies générales doivent donc être laissés ouverts.
L'ordre dans lequel les recherches sont effectuées peut être défini avec l'onglet Order and Export, en
utilisant les boutons Up et Down pour déplacer dans la liste l'entrée sélectionnée.
Export
La case à cocher [Export] à gauche de chaque entrée de cette liste n'a rien à voir avec l'ordre de recherche.
Elle permet d'indiquer (si elle est cochée) que la librairie ou le projet considéré sera transitivement exporté
(c-à-d que le projet qui référencera comme ressource externe le projet dont on est en train de changer les
propriétés, importera automatiquement la librairie ou le projet dont on a coché la case {à lire calmement ;-} ).
L'outil de base pour créer et gérer les fichiers JAR est l'utilitaire jar qui fait partie du SDK. Avec
l'environnement de développement Eclipse, un assistant permet de créer un fichier JAR de manière plus
conviviale qu'en travaillant avec la ligne de commande (Command Prompt).
Pour lancer cet assistant, il faut passer par le menu : File Export JAR File
Il suffit ensuite de sélectionner les ressources qui doivent y être placées, d'indiquer l'emplacement et le
nom du fichier JAR , de créer éventuellement fichier de description (voir ci-dessous) et de demander de
générer le fichier Manifest en indiquant la classe principale (le point d'entrée de l'application).
Les informations qui servent à générer le fichier JAR peuvent être mémorisées sous forme d'un fichier de
type "JAR Description" qui apparaîtra dans la vue Package Explorer et qui servira à re-générer une
nouvelle version du fichier JAR sans avoir à réutiliser l'assistant.
Cette technique fonctionne si la ressource se trouve soit dans un répertoire défini comme Classpath, soit dans le
fichier JAR. On peut naturellement placer la ressource dans un sous-répertoire ("images/[Link]").
L'imbrication de fichiers JAR n'est pas directement supportée en Java. Il est conseillé de déployer les différents
fichiers JAR dans les emplacements souhaités et de les référencer dans le fichier Manifest du fichier JAR principal
en utilisant le mot clé Class-Path.
Exemple : Class-Path: . lib\[Link] lib\[Link]
(le point "." représente le répertoire courant)
Re fa c t oring
Différentes fonctions de Refactoring (adaptation du code source sans changer la sémantique) sont
disponibles dans le menu Refactor.
Il est notamment possible de changer le nom d'une ressource (Refactor Rename…) ou de déplacer
une ressource (Refactor Move…). D'autres fonctions plus spécifiques existent également.
Pour définir des Working Sets, on utilisera le menu déroulant du Package Explorer ( ) en sélectionnant
l'option Select Working Set… puis en cliquant sur le bouton New .
On peut ensuite donner un nom au Working Set et sélectionner les ressources associées (celles que l'on
souhaite voir dans le Package Explorer).
H e lp
Une aide contextuelle peut être invoquée à tout moment en pressant sur F1.
Work be nc h
Affichage d'une vue ou d'une fenêtre d'édition en
plein écran (idem pour le retour à l'affichage Double-clic sur la barre de titre
normal)
Restauration de la disposition par défaut des
Window s Reset Perspective
sous-fenêtres d'une perspective pré-définie
Aide contextuelle F1
Affichage des raccourcis clavier disponibles Ctrl+ Shift+ L
Édit ion
Assistance de codage
- Autocompletion
- Template Expansion Ctrl+ Space
- Parameter List
-...
Sélectionner la ou les lignes concernées puis :
Modification du niveau d'indentation du code
Tab ou Shift+ Tab
Positionner le curseur sur la ligne concernée ou
Déplacement de lignes de code sélectionner plusieurs lignes puis :
Alt+ ou Alt+
Formatage du code Ctrl+ Shift+ F
Undo : Annuler la dernière action Ctrl+ Z
Redo : Rétablir la dernière action annulée Ctrl+ Y
QuickFix Proposition de correction d'erreur ou de
modification spécifique du code sélectionné Ctrl+ 1
(affichage d'une liste de propositions)
Recherche incrémentale (avant/arrière) Ctrl+ J Text
Mise en commentaire des lignes sélectionnées Ctrl+ 7
Affichage contextuel de la JavaDoc Shift+ F2
Sauvegarde et compilation Ctrl+ S
De bugge r
Debug last launched F11
Step over F6
Step into F5
Resume F8
Run to line (indicated by the cursor position) Ctrl+ R