Environnement de développement – L3 II TP 1 : Premier ( ?) contact avec Eclipse Mihaela Sighireanu (www.liafa.jussieu.fr/~sighirea/cours/edi/) L’objectif de ce TP est de vous familiariser avec les concepts de la plateforme Eclipse vus en cours. Il vous permet également un premier contact avec le JDK (Java Developement Kit) que nous allons étudier plus en profondeur par la suite. 1 Lancer et configurer Eclipse 1. Lancer Eclipse à partir d’un terminal ou à partir du menu d’Applications. Un message d’erreur sur l’absence de navigateur peut apparaı̂tre ; il s’agit d’un problème de configuration, ignorez-le pour le moment ! Le premier lancement d’Eclipse est long car il cherche à travers le réseaux des paramètres de lancement. 2. Choisir (pour le moment) l’emplacement de votre espace de travail à la racine de votre FS. 3. Entrer dans l’espace Tutorial est naviguer dans les manuels offerts. 4. Revenir à la page d’introduction et aller dans l’espace de travail. 5. Dans le menu Help, choisir About Eclipse SDK. Visualiser les différents détails proposés (plug-ins, features, options). 6. Dans Help → Preferences, visualiser la version de JRE qui est par défaut. Changer cette version pour la version de Sun. 2 Premiers pas sous Eclipse Pour travailler avec le JDK, il suffit de : 1. Créer un nouveau projet dont le type est “Java Project”. 2. Assurer que la version de JRE utilisée est celle de Sun. 3. Définir un nouveau paquet. 4. Créer dans le paquet des sources Java soit en partant d’un fichier vide, soit en important des fichiers existants. Par exemple, programmer l’exemple classique de “Hello world !” doit vous prendre quelque clics. 3 Navigation dans un code inconnu Pour tester toutes les facilitées d’édition et navigation de code, nous allons travailler sur un code extérieur, la bibliothèque LASER développée à l’Université de Massachusetts par l’équipe LASER (laser.cs.umass.edu). LASER est une bibliothèque Java pour les automates finis. Exercice 1: Préparation Créer deux projets (FSA et FSA Unit Test) dans votre espace de travail et puis importer dans ces projets les sources qui se trouvent dans les répertoires ayant les mêmes noms en /ens/sighirea/EDI/tp1/. A la fin de cette opération, vous devez disposer de deux projets avec des warnings mais pas d’erreurs. Si c’est pas le cas, il faut s’assurer que le JRE utilisé est bien la version 1.5 de Sun. La documentation de ce projet se trouve dans le projet FSA Unit Test. Exercice 2: Navigation 1. Visualiser tous les éléments de l’unité de compilation MutableFSA.java du paquetage laser.fsa dans le projet FSA Unit Test. Filtrer la vue ainsi obtenue pour visualiser que les méthodes publiques. 2. En utilisant la vue filtrée, visualiser la définition de la méthode removeState(). Visualiser les hiérarchies des appels et des héritages de cette méthode. Comment peut-on obtenir la pile d’appels qu’engendre cette méthode, c’est-à-dire les méthodes que removeState() appelle. 3. Dans la même classe, on s’intéresse maintenant au champ privé transitions. Quelle est la classe de déclaration de ce champ ? Le type de ce champ est un ensemble ordonné de transitions étiquetées. Quelles sont les classes non-abstraites qui peuvent être utilisées comme transitions ? 4. Faire la même étude pour les champs _states et _alphabet. 5. Quelles sont les différences entre l’unité de compilation MutableFSA.java du projet FSA Unit Test et celle du projet FSA ? Exercice 3: Edition pour la correction Les fichiers AbstractFSA.java et MutableFSA.java arrivent avec des warnings concernant principalement les importations et les types génériques. 1. Eliminer les warnings concernant les importations en utilisant l’assistant de code de JDT. Comparer la version obtenue avec celle de l’histoire locale. 2. Eliminer les warnings concernant les cast (3) vers de types génériques dans le fichier MutableFSA.java. Utiliser l’assistant de code pour cela. 3. Eliminer le warning concernant la variable non lue dans le fichier MutableFSA.java.