Manuel d'initiation à NetBeans 4.0 beta 2
Philippe.Genoud@imag.fr

par Philippe.Genoud@imag.fr.

Ce document présente le minimum vital pour une utilisation de l'environnement de développement intégré (IDE) NetBeans 4.0 v beta 2. Il s'agit d'un premier jet, il sera ultérieurement complété.

Notion de projet NetBeans

Avec la version 4.0 de NetBeans (http://www.netbeans.org) vous travaillez toujours au sein d'un projet. Un projet est un ensemble de fichiers source JAVA et des informations associées (classpath, comment construire et exécuter le projet, etc...).L'IDE NetBeans 4.0 stocke l'information associée à un projet dans un dossier projet (project folder) qui inclus un script build Ant (fichier build.xml équivalent d'un Makefile) qui contrôle la compilation et l'exécution, et un un fichier project.xml qui associé les cibles (targets) Ant aux commandes de l'IDE. Ant est un projet open source de la fondation Apache (http://ant.apache.org/)

Avec NetBeans vous pouvez soit

Dans cette introduction à NetBeans nous ne nous intéresserons qu'aux projets Standards, et particulièrement aux projets de type Application Java

Creation d'une application Java avec NetBeans

Prour créer un nouveau projet d'application JAVA choisissez File > New Project (Maj-Ctrl-N). Une boite de dialogue pour la création de nouveaux projets apparaît

Sous Categories, sélectionnez Standard. Sous Projects, sélectionnez Java Application et cliquez sur Next.

Une boite de dialogue pour la création d'une nouvelle application Java est alors affichée.

Sous Project Name, introduisez HelloWorld. Avec Project Location choisissez un emplacement pour les fichiers de votre projet.
Cochez la case Set as Main Project ainsi que la case Create Main Class. Introduisez HelloWorld comme classe principale.
Cliquez sur Finish.

NetBeans crée un dossier HelloWorld dans le répertoire que vous avez choisi por votre projet (dans l'exemple ci dessus P:\Enseignement\CCI). Le projet HelloWorld s'ouvre et la classe HelloWorld.java est affichée dans l'Éditeur de Source..

L'onglet Projects permet de visualiser la structure logique du projet (les différenst packages Java qui le constituent), l'onglet File permet de visualiser sa structure de fichiers.


Vue logique d'un projet

Vue "physique" d'un projet

Utilisation de l'éditeur.

Modifiez le programme Helloworld en complétant la méthode main avec l'instruction System.out.printl("Bonjour Monde cruel!");

Lorsqu'il le peut, l'éditeur vous propose une complétion automatique du code. Par exemple arrêtez la frappe après avoir tapé System.out. , l'éditeur vous propose alors toutes les métodes possibles avec la documentation javadoc associée.

L'éditeur offre la completion de code pour toutes les classes et méthodes dans le classpath de compilation du projet. Vous pouvez à tout moment activer la complétion par Ctrl-Espace.

L'éditeur n'attend pas toujours qu'une compilation ait été lancée pour vous signaler d'éventuelles erreurs. Au fur et à mesure que vous tapez votre texte, la syntaxe java est vérifiée et en cas d'erreur une petite croix rouge est mis en face de la ligne correspondante. En positionnant le curseur de la souris sur cette croix vous aurez un message d'explication indiquant la nature de l'erreur. Pour apprécier cette fonctionnalité ne mettez pas de ';' à la fin de votre instruction System.out.println.

Corrigez l'erreur de syntaxe et sauvegardez e fichier HelloWorld.java (File->Save ou Ctrl-S).

Pour savoir si un fichier affiché dans l'éditeur a été sauvegardé ou non, une étoile apparaît à coté de son nom :


Fichier non sauvegardé


Fichier sauvegardé

Compiler et exécuter le projet

Une fois le fichier sauvegardé vous pouvez lancer la compilation et l'exécution de votre projet par Menu Run->RunMainProject (F6). Cela à pour effet d'exécuter les diiférentes commandes du script Ant build.xml pour compiler puis exécuter votre application. Les sorties de ces commandes Ant puis de votre application sont affichées sur la fenêtre Output en de la fenêtre de NetBeans.

Nous allons maintenant compléter le programme HelloWorld afin qu'il puisse, comme nous l'avons déjà vu lors du TP n°1, lire une suite de nom sur la ligne de commandes et pour chaque nom lu afficher une chaîne Bonjour ...

    public static void main(String[] args) {
        // TODO code application logic here
        System.out.println("BONJOUR");
        for (int i = 0; i < args.length; i++)
          System.out.println("Bonjour " +  args[i]);
    }

Pour lancer ce programme depuis NetBeans en lui communiquant une suite d'arguments il vous faut configurer les propriétés de votre projet. On accède au paneau de configuration en effectuant un clic droit sur le projet et en choisissant l'item Properties dans le menu contextuel comme le montre l'image ci-dessous.

Une fenêtre d'édition des propriétés du projet HelloWorld apparaît.

Sélectionnez les proprietés Running Project (configurations pour l'exécution du projet) dans Run et dans la partie droite de la fenêtre introduisez une suite de noms dans le champ de saisie Arguments. Validez par OK, puis relancer l'éxécution du projet (Run -> Run Main Project ou F6).

Dans la fenêtre de sortie vous devez obtenir l'affichage suivant :

Réaliser une application avec des lectures au clavier.

Recopiez la classe LectureClavier.java dans le répertoire src de votre projet. Vérifiez qu'elle apparaît dans votre projet sous NetBeans.

Complétez ensuite le main de votre classe HelloWorld avec le code suivant :

    public static void main(String[] args) {
        System.out.println("BONJOUR");
        for (int i = 0; i < args.length; i++)
          System.out.println("Bonjour " +  args[i]);
        System.out.print("entrez votre nom ");
        String nom = LectureClavier.lireChaine();
        System.out.println("Au revoir " + nom);
    }

Lancez l'éxécution de votre application (Run -> Run Main Project ou F6). Constatez dans la fenêtre de sortie de NetBeans que la lecture au clavier n'a pas été prise en compte.

Du fait que Netbeans 4.0 s'appuie sur Ant pour lancer l'exécution des applications Java il ne supporte directement le développement d'applications avec une console. Plusieurs solutions sont possibles pour rémédier à ce problème :

  1. Exécuter directement l'application en lançant l'applicaton depuis un fenêtre console de votre système. Les classes java de votre application ont été compilées dans le répertoire build/classes situé sous la racine de votre projet.
  2. Exécuter l'application Java dans un mode "unforked" (pas de création d'un nouveau processus par Ant). Une note technique (issue #47708) sur le site de Netbeans indique comment modifier le fichier build.xml afin de changer ce mode.mode by opening build-impl.xml : http://www.netbeans.org/community/releases/40/relnotes.html
    Il semble que sous windows cette solution n'est pas toujours très fiable.
  3. Rediriger les entrées/sorties de votre application vers uen console de rempalcement comme le propose Eric G. Berkowitz : http://cs.roosevelt.edu/eric/console.html

Expérimentez avec ces trois manières de procéder.

Interrompre l'exécution d'un programme

Fermez le projet HelloWorld (clic droit dans la fenêtre projet et item Close Project du menu contextuel) et céez un nouveau projet VisageRond.

Recopiez dans le répertoire src de ce nouveau projet les sources classes de l'application AppliVisage vue lors du TP n° 1 :

Compilez et exécutez l'application AppliVisage1 (Run -> Run Main Project ou F6). L'application AppliVisage1 est constituée d'une boucle infinie qui à chaque itération effectue un déplacement élémentaire du visage et réaffiche l'image. Lorsqu'il est lancé depuis une console, ce programme peut être arrêté en tapant CTRL-C. Pour interrompre l'exécution d'un programme depuis NetBeans il faut procéder de la manière suivante :

Interrompez l'exécution de l'application VisageRond comme indiqué ci-dessus.

Générer la documentation Javadoc d'un projet

Pour générer la documentation javadoc d'un projet à partir des sources il suffit d'activer la commande Generate Javadoc depuis le menu Build.

Normalement, une fois la documentation générée NetBeans ouvre une fenêtre du navigateur par défaut affichant cette documentation.

Les fichiers générés le sont dans le répertoire dist/javadoc situé sour la racine de votre projet.

La documentation en ligne de NetBeans

Nous avons vu dans ce qui précède le strict minimum pour l'utilisation de NetBeans 4.0 dans l'écriture d'applications Java. Pour profiter aux mieux des très nombreuses fonctionnalités de et environnement, nos vous conseillons de parcourir la documentation en ligne. Pour obtenir cette aide, menu Help-->Help Sets-->Core IDE Help. La Fenêtre d'aide à l'organiation suivante :

3 onglets permettent de parcourir l'aide de 3 manières distinctes :

Consultez cette aide en ligne de NetBeans, elle vous sera probablement fort utile lors d'utilisations ultérieures de l'IDE. Developpez le chapitre Getting Started et parcourez rapidement cette documentation.

Créer des tests unitaires avec NetBeans

NetBeans propose un support intégré pour la génération et l'exécution de tests unitaires à l'aide du framework JUnit (www.junit.org). Pour expérimenter avec cette fonctionnalité vous allez écrire les test unitaire d'une classe Counter qui modélise un compteur entier (voir la javadoc de Counter).

  1. Si vous avez un projet NetBeans ouvert fermez le (clic droit sur le projet dans la fenêtre projet, item Close Project dans le menu contextuel)
  2. Créez un nouveau projet (nommez-le EssaiJUnit)
  3. Recopiez dans le répertoire sources (src) de ce projet le source de la classe Counter : Counter.java

Votre projet étant en place, vous allez maintenant générez le code de la classe de test associée à la classe Counter. Pour cela, Netbeans , dans son organisation standard pour les projets propose de séparer dans deux hiérarchies de répertoires les fichiers sources des classes de votre application (répertoire src) et les fichiers sources des classes de test (répertoire test).

Dans la fenêtre Projects faites un clic droit sur le noeud Counter.java et choisissez Tools->JUnit Tests > Create Tests dans le menu contextuel qui apparaît.

Une fenêtre de dialogue apparaît , qui permet de configurer la manière dont NetBeans va générer la code de la classe de test. Vous pouvez désactiver la génération des méthodes setUp et tearDown invoquées au début et à la fin de chaque test.

Cliquez sur OK. Une classe CounterTest est alors générée (fichier CounterTest.java dans le répertoire test).

Pour chacune des méthodes de la classe Counter une méthode de test correspondante a été produite dans le fichier CounterTest.java. Pour le moment ces méthodes sont vides et provoquent systématiquement un echec (Failure).

Pour exécuter les tests contenus dans cette classe, procédez comme suit :

  1. Sélectionnez la classe Counter dans la fenêtre Project
  2. Sélectionnez l'item Test Counter.java (CTRL+F6) dans le menu Run -> Run Other.

NetBeans lance l'exécution de ce tests contenus dans la classe CounterTest et affiche les résultats de cette exécution dans la fenêtre Output.

Un rapport d'exécution des test est affiché indiquant le nombre de méthodes testées, le nombre de test ayant échoués et le nombre d'erreurs d'exécution (test ayant échoués suite une exception). Pour chacun de echecs , un détail de l'erreur et une trace de la pile d'exécution vous permet de localiser rapidement l'origine de l'echec.

Un simple clic sur l'erreur vous raménera directement sur la ligne correspondante dans le code source.

Ici, bien entendu, tous les tests ont échoué. En effet, la classe CounterTest a été généré avec systématiquement un appel à fail() dans chacune des méthodes de test.

A titre d'exercice, complétez la classe CounterTest pour que chacune des fonctionnalités de la classe Counter soit testée et éventuellement corrigez cette dernière.