Licence Professionnelle Technologie des Applications Internet
TD de Programmation Orientée Objet n°1
Introduction aux outils du Java SDK 1.4.2

par Philippe.Genoud@imag.fr.

pour en savoir plus sur java 1.4.2 : http://java.sun.com/j2se/1.4.2/

Un programme Java peut prendre deux formes distinctes, chacune étant adaptée à un contexte d'invocation et d'exécution différent.

Les exercices qui vous sont proposés ici ont pour but de vous faire expérimenter ces deux types de programmes Java et de vous faire utiliser les outils de base du SDK :


exercice 0 : vérifier la présence de java

Si vous n'obtenez pas les réponses attendues, il faut configurer votre environnement avant de pouvoir travailler :



exercice 1 : consulter la documention en ligne du SDK

La documentation du SDK 1.4.2 est disponible dans le placard électronique PLACARD->DESSCCI->PL2->java->jdk1.4.2->docs. Ce premier exercice a pour but de vous faire parcourir un peu cette documentation afin de vous familiariser avec son organisation. NE LE NEGLIGEZ PAS ! Pour pouvoir travailler efficacement avec java, il est essentiel de savoir vous servir de cette documentation et de situer rapidement les éléments qui pourraient vous être utiles.

A titre d'exercice retrouver :



exercice 2 : compiler et exécuter une application java

pour en savoir plus sur : le compilateur javac et l'interpréteur java

Afin d'organiser correctements vos fichiers, nous vous recommandons de respecter la règle suivante lors des TP de programmation : pour chaque TP créez un répertoire TPi où i est le numero du TP. Si le TP comporte plusieurs exercices indépendants, créer pour chaque exercice un sous répertoire dans lequel vous rangerez les programmes associés à cet exercice. Les commandes de manipulation des répertoires dans la fenêtre de commandes windows sont identiques à celles utilisées dans un shell Unix : mkdir pour créer un répertoire, cd pour changer de répertoire courant, rmdir pour supprimer un répertoire)

  1. Sauvegardez dans le répertoire adéquat (par exemple EPO/TP1/exercice2) le programme source HelloWorld.java (pour sauvegarder le texte de ce programme dans un fichier cliquez sur le lien en maintenant le bouton droit de la souris enfoncé et sélectionnez l'option Enregistrez la cible sous (Save As) du menu qui apparaît),
  2. Compilez l'application HelloWorld.java.
  3. Exécutez l'application HelloWorld.
  4. Modifiez ce programme de manière à ce qu'il provoque l'affichage suivant :
      BONJOUR
      CECI EST MON
      PREMIER PROGRAMME JAVA
    ou tout autre texte de votre choix.....

  5. Sauvegardez dans votre répertoire de travail le programme Hello2.java.
  6. Compilez ce programme et executez le successivement avec les commandes :
  7. Constatez. En observant le source du programme Hello2.java, que pouvez-vous en déduire sur le rôle du paramètre args de la méthode main ?
    ........................................................................................................................................
    ........................................................................................................................................


exercice 3 : compiler et exécuter une applet java

pour en savoir plus sur : le visualiseur d'applets appletviewer

L'affichage du texte ci-dessous dont les lettres se déplacent de façon aléatoire est en fait géré par une applet JAVA (écrite par Daniel Wyszynski, Branché JAVA, A.van Hoff,S. Shaio, O. Starbuck, Ed. International Thomsom Publishing France 1996)

La compilation de cette classe vous indique que certaines méthodes utilisées par ce programme sont dépréciées. Présentes dans les premières versions de la plateforme java, ces méthodes ont depuis été remplacées par de nouvelles méthodes introduites dans les versions successives de la plate-forme java. Toutefois les messages de "dépréciation" sont simplement des avertissements (warnings), le code compilé est exécutable. Ces messages sont là pour signifier au programmeur l'utilisation de méthodes dépréciées qui peuvent s'avérer dangereuses ou risquent de ne plus être supportées dans de future versions de java et qu'il serait préférable de remplacer par de nouvelles fonctionnalités de la plate-forme java.

Quelle option du compilateur java permet de voir le détail des méthodes dépréciées ?
.......................................................................................................................................................................

Recompilez la classe NervousText avec cette option. Quelles sont les méthodes dépréciées utilisées dans NervousText ? Dans quelles classes sont elles définies ? Par quelles méthodes devraient-elles être remplacées (ce que nous ne ferons pas ici) ?
..........................................................................................................................................................................
..........................................................................................................................................................................
..........................................................................................................................................................................
..........................................................................................................................................................................
.........................................................................................................................................................................

  1. en chargeant le fichier essaiapplet.htm dans votre navigateur Web si celui ci-est équipé d'une machine virtuelle java (ou si le Java Pluggin a été installé)
  2. en lançant depuis la ligne de commande la commande appletviewer essaiapplet.htm


exercice 4 : Compilation, exécution, documentation d'une application simple.

pour en savoir plus sur :

  • le générateur de documentation javadoc
  • le class path : pour définir les règles de recherche des byte-codes des classes java.
  • la construction de fichiers jar (fichiers Java ARchives)

Lorsque l'on développe une application constituée de plusieurs fichiers il est important de bien organiser ceux-ci sur son espace disque. Ainsi une organisation classique est de séparer dans différents répertoires les fichiers selon leur nature. Ainsi pour un projet de développement en JAVA on pourra choisir l'organisation suivante : dans un répertoire correspondant au projet on aura 3 sous repertoires :

Dans l'exercice qui suit vous allez expérimenter cette organisation avec l'application vue en cours qui permet l'animation de visages sur l'écran. Cette application est constituée de 3 classes Java :

a) compilation de l'application

  1. Créer un repertoire Visages avec trois sous répertoires src , doc et classes (commande mkdir sous MS-DOS)
  2. Sauvegardez dans le répertoire src les fichiers sources des différentes classes de l'application : VisageRond.java, Dessin.java et AppliVisage1.java
  3. Placez vous dans le répertoire src (commande cd) et compilez l'application AppliVisage1 en utilisant la commande
    javac -d ../classes AppliVisage1.java

b) exécution de l'application

  1. Placez-vous dans le répertoire classes (commande cd) et exécutez l'application AppliVisage1. Faire CTRL C sur la  ligne de commandes pour arrêter l'application.
  2. Placez vous maintenant dans le répertoire Visages et retappez la commande utilisée précédemment pour l'exécution de l'application exécutez AppliVisage1.
  3. L'option -classpath (ou -cp) de la commande java permet d'indiquer à l'interpréteur Java où trouver les classes à charger (voir la doc).
  4. Déplacer le fichier AppliVisage1.class du répertoire classes vers le répertoire Visages (commande move sous MS-DOS).

c) construction et utilisation de fichiers jar

  1. Replacez vous dans le répertoire classes. Normalement si vous avez respecté les étapes précédentes, ce répertoire ne doit contenir plus que les fichiers Dessin.class et VisageRond.class , fichier contenant le byte-code des classes Dessin et VisageRond.
  2. En vous aidant de la documentation de la commande jar , construisez un fichier JAR (Java Archive) de nom visages.jar contenant ces deux fichiers.
  3. Que fait la ommande jar tvf Déplacez le fichier jar dans le répertoire Visages.
  4. Replacez vous dans le répertoire Visages et lancez à nouveau l'exécution en utilisant ce fichier jar dans l'option -classpath de la commande java.
  5. D'après vous quel est l'interêt des fichiers jars ? (Des éléments de réponse sont dans la documentation de la commande jar)
    .............................................................................................................................................................................................
    .............................................................................................................................................................................................
    .............................................................................................................................................................................................

d) génération automatique de la documentation

Pour comprendre le fonctionnement et le rôle des différentes classes de l'application Visages vous allez générez la documentation de celles-ci à l'aide de l'outil javadoc.

  1. Si il n'existe pas encore, créez un répertoire docs dans le répertoire Visages
  2. Placez vous dans le répertoire src et lancez la commande javadoc -d ../docs *.java.
  3. Le point d'entrée de la documentation générée est le fichier index.html.
  4. Les méthodes setDy et getDy de la classe VisageRond ne sont pas documentées.

e) Modification d'une classe de l'application

pour en savoir plus sur :

  1. Modifiez le source de classe VisageRond afin que la taille par défaut d'un visage soit de 100x100 pixels au lieu de 50x50 pixels
  2. Recompilez cette classe (en prenant bien soin de placer le fichier bytecode dans le répertoire classes).
  3. Vérifiez que votre modification fonctionne en réexécutant l'application AppliVisage1.

f) Erreurs de compilation

  1. Sauvegardez dans le répertoire src  le fichier  : AppliVisage2.java
  2. Placez vous dans le répertoire src et compilez AppliVisage2 avec la commande javac -classpath ../classes -d ../classes AppliVisage2.java.
  3. Après avoir effectué ces modifications, recompilez et exécuter l'application AppliVisage2.

g) Erreurs d'exécution

  1. Sauvegardez dans le répertoire src  le fichier  : AppliVisage3.java
  2. Placez vous dans le répertoire src et compilez AppliVisage3 avec la commande javac -classpath ../classes -d ../classes AppliVisage3.java
  3. Exécutez l'application AppliVisage3.
  4. A l'aide du message d'erreur produit, localisez et corrigez l'erreur. Quelle correction avez vous effectuée ?
    .....................................................................................................................
    .....................................................................................................................
    .....................................................................................................................
  5. Recompilez et réexecutez cette application.

Si vous voulez voir d'autres démonstrations de programmes et d'applets Java : http://java.sun.com/j2se/1.4.2/docs/relnotes/demos.html