Page de Nathalie Aubrun
Institut Gaspard Monge
Page de Nathalie Aubrun
Université de Marne-la-Vallée
TP6 - Utilisation des librairies sun et des librairies externes

Le rapport de ce TP sera à rendre.

Ce TP a pour objectif de vous apprendre à utiliser des librairies existantes. Nous rappellons que les librairies sont des bibliothèques de codes qui peuvent être utilisées dans un programme. Grace aux bibliothèques, le programmeur peut réutiliser le code source qu'il a déjà créé auparavant, mais il peut aussi utiliser du code source écrit par d'autres programmeurs.

Exercice 1: Apprendre à lire l'API Java de Sun

Les librairies java sont des librairies qui sont présentes dans le JDK (kit de développement Java) et le JRE (environnement d'exécution de Java) proposés par Sun. Vous avez déjà utilisé ces librairies.

Donnez un ou plusieurs exemples de méthodes statiques, de classes et de méthodes que vous avez déjà utilisées et qui sont implémentées dans les librairies java proposées par Sun.

La documentation des librairies Java est disponible sur le site de Sun à l'adresse suivante: http://java.sun.com/javase/6/docs/api/

Essayez de retrouver la documentation concernant les méthodes et les classes que vous avez citées précédemment. Puis répondez aux questions suivantes:

  • Rappelez ce que sont des classes concrète, abstraite et des interfaces et expliquez quelles sont leurs différences.
  • Comment repère-t-on dans le code ces différents objets ?
  • Rappelez ce qu'est l'héritage et l'implémentation. Comment repère-t-on dans le code un héritage ou une implémentation ?

Vous allez maintenant essayer de repérer chacun des concepts présentés ci-dessus en répondant aux questions suivantes:

  • Comment peut-on savoir si une classe est une interface, une classe abstraite ou une classe concrète ?
  • En vous promenant dans l'API de Java, donnez des exemples d'interfaces, de classes abstraites et de classes concrètes.
  • Pour une classe donnée, repérez toutes les classes qu'elle implémente et celles qu'elle étend (mécanisme d'héritage).
  • Pour une classe donnée, comment fait-on pour trouver les constructeurs, les methodes, les méthodes statiques et les constantes de classes? Donnez des exemples.

Exercice 2: Apprendre à utiliser une librairie externe (avec JGraphT) [HelloJGraphT.java]

Nous allons apprendre à utiliser une librairie externe : la librairie JGraphT.

La librairies JGraphT implémente les graphes. Un graphe est une structure informatique constituée de sommets et d'arêtes. Les sommets sont un ensemble d'éléments quelconque, alors que les arêtes sont des couples de sommets. On parle dans ce cas de graphe non-orienté (undirected graph).

Les graphes permettent de modéliser un grand nombre de situations. Par exemple, un réseau routier peut etre modélisé à l'aide d'un graphe. Les sommets représentent alors les villes, et les arêtes les routes.

Par exemple, le réseau routier de France peut être modélisé à l'aide d'un graphe. Les villes sont alors des sommets et les routes des arêtes. On obtient le graphe suivant:

Exemple de graphe: carte routière simplifiée de France

Dans un graphe, il est possible de donner un sens aux arêtes. On parle alors de graphe orienté (directed graph). Il est aussi possible de mettre des poids aux arêtes. On parle alors de graphe pondéré (weighted graph).

Par exemple, on peut associer à chaque arête du graphe routier précédent un poids, qui est la distance entre les deux villes reliées par l'arête. On obtient ainsi:

Exemple de graphe : carte routière simplifiée de France

L'objectif de ce tp est d'implémenter les deux graphes qui représentent la carte routière de la France, à l'aide de la librairie JGraphT.

Téléchargez la librairie JGraphT, puis compilez la librairie et sa documentation. L'adresse web de la librairie est: http://jgrapht.sourceforge.net/.

Localisez dans le dossier de la librairie où se trouvent la documentation, les librairies compilées et s'ils existent des exemples d'implémentation.

Commencez par décompresser le projet JGraphT. Ce projet utilise la technologie ant. Vous pouvez donc exécuter les commandes suivantes:

  • ant compile : pour compiler le code sour de JGraphT,
  • ant javadoc : pour compiler la documentation du projet,
  • ant jar : pour créer la librairie JGraphT (un .jar) que vous utiliserez plus tard pour pouvoir executer votre programme.

Il est possible que ant ne sache pas où se trouve le kit de développement Java JDK pour compiler. Il faut alors donner à ant le chemin d'acces du kit de développement. Cela se fait en créant une variable d'environnement de nom : JAVA_HOME. Pour faire cela sous linux, il suffit de taper :

JAVA_HOME=REPERTOIR_JDK ant
à la place de
ant
dans les commandes précédentes.

A l'issu de ces trois commandes, de nombreux dossiers ont été créés. Repérez dans l'arborescence:

  • où se trouve la documentation,
  • où se trouven les fichiers compilés,
  • où se trouve la librairie de JGraphT (.jar),
  • où se trouvent les libraires nécessaires à JGraphT pour s'exécuter (on appelle ces librairies les dépendances de JGraphT),
  • où se trouvent les codes sources de JGraphT.

Avant de commencer à utiliser la librairie, il est nécessaire de faire le point sur la documentation existante. Voici une liste de source d'informations possibles:

  • les documentations officielles de la librairie,
  • la documentation Javadoc du projet,
  • les documentations qui apparaissent dans le repertoire du projet, mais qui ne sont pas créées par Javadoc,
  • des exemples ou démonstrations donnés dans le code source,
  • le repertoire de test de la librairie s'il existe.

Listez pour la librairies JGraphe les différentes sources d'informations pour chaque point de la liste précédente.

Essayer de déterminer la source d'information la plus pertinente, la plus facile ou la plus abordable.

Dans le cas de cette librairies, il existe des exemples implémentés qui offrent une documentation relativement simple du fonctionnement de la librairie. Commencez par trouver ces exemples (si cela n'est pas déjà fait), exécutez-les et analysez le code source de l'exemple le plus simple.

Inspirez-vous de cet exemple pour créer le graphe de la carte routière simplifiée de la France.

Pour compiler votre code, vous devez donner au compilateur le lieu où se trouve la librairie JGraphT afin qu'il puisse posséder toutes les informations nécessaires pour compiler votre code. Pour cela, vous devez taper la commande suivante:

java -cp REPERTOIRE_JGRAPHT/jgrapht-jdk1.6.jar Essai
où REPERTOIRE_JGRAPHT est le répertoire ou a été compilé JGraphT.

Pour executer votre programme, il faut donner aussi au compilateur le lieu où se trouve la librairie JGraphT. Pour ce faire, vous utiliserez la commande suivante:

java -cp .:./REPERTOIRE_JGRAPHT/jgrapht-jdk1.6.jar Essai
où REPERTOIRE_JGRAPHT est le répertoire ou a été compilé JGraphT.

Valid XHTML 1.1