Recherche :

Java instantané dans Eclipse
Langages

Quand on travaille sur un projet Java dans Eclipse, il est fréquent de vouloir essayer quelques lignes de code avant de les intégrer définitivement dans le projet.

Java étant un langage Orienté Objet (OOL), tous, sans exception se passe dans des classes. Il n'est donc pas possible, l'exécution de lignes de code en dehors d'une classe.

Eclipse offre une solution élégante pour tester une ou plusieurs lignes de code isolées sans toutefois être obligé de construire des classes. Cette solution héritée de Visual Age a pour nom "Scrapbook Page".

"Scrapbook Page" permet d'entrer directement des lignes de codes à essayer, ou un morceau de code à partir d'un autre fichier .java avec des opérations de copier coller.

1. Avantages :

1.Pas besoin de créer une classe et méthodes pour essayer le code

2.L'assistant de code d'Eclipse est disponible dans "Scrapbook Page"

3.gain de temps

2. Lancement :

File -> New -> Other

3. Select a Wizard :

Dans la boîte de dialogue "Select a Wizard"
Sélectionner Java -> Java Run/Debug -> Scrapbook Page

Un clic sur "Next"

4. Sélectionner un dossier de destination :

Sélectionner le dossier de destination. Par exemple ici "src" du projet en cours

Enter un nom pour le fichier de "Scrapbook Page" au choix. Par exemple ici "test" sans extension (l'extension .jpage est ajoutée automatiquement) -> puis un clic sur "Finish"

Note :
Un autre moyen pour lancer "Scrapbook Page" est de sélectionner un projet -> sélectionner un dossier -> New -> File -> Entrer nom avec l'extension .jpage

Ou
File -> New -> File -> sélectionner projet et dossier -> entrer nom et l'extension .jpage

5. Le fichier test.jpage

Un fichier "test.jpage" est créé et ouvert dans l'éditeur d'Eclipse.

6. Utilisation :

Essayons de formater avec System.out.printf()

Entrer le code suivant dans "test.jpage" :

int age=30;
String nom="toto";
System.out.printf("bonjour, %s. l'année prochaine tu auras %d", nom, age);

7. Exécuter le code :

1.Sélectionner l'ensemble du code dans l'éditeur (avec la souris ou CTRL+A)

2.Un clic droit

3.Un clic sur "Execute"

Note :
Il est possible d'exécuter le code aussi avec Un clic sur le bouton "Execute the selected code" ou "CTRL+U"

Note :
Il n'est pas nécessaire de sauvegarder le fichier pour pouvoir exécuter le code. Par contre il est possible de le sauvegarder pour pouvoir l'utiliser ultérieurement dans une classe Java par exemple.

Note :
Une nouvelle JVM dédiée est lancée lors de l'évaluation de la première expression dans "Scrapbook". Cette instance de la JVM n'est pas terminée automatiquement après l'exécution. Pour terminer cette instance de la JVM un clic sur le bouton "Stop".

Note :
JVM est terminée si la page (ici "test.jpage" est fermée) ou si System.exit() est évaluée.

8. Résultat :

Le code est exécuté et le résultat est affiché dans le "Console"

9. Arrêter JVM

Comme indiqué précédemment un clic sur "Stop the Evaluation" permet de terminer la JVM utilisée par "Scrapbook Page"

10. Les messages d'erreurs :

Les messages d'erreurs générés sont affichés au-dessus du code dans "test.jpage"

Par exemple :
Si on utilise "String name" au lieu de "String nom" un message d'erreur est de suite affiché

Note :
Les exceptions sont affichées aussi dans l'éditeur et dans le "Console" (dans Eclipse 3.4) comme par exemple :

An exception occurred during evaluation: java.lang.NullPointerException

11. Erreurs dues à l'absence d'import :

Essayons un deuxième exemple :

System.out.printf("%1$s %2$tB %2$te, %2$tY", "La date:", new Date());

Après avoir entré le code, on essaye de l'exécuter, en sélectionnant le code et en cliquant à droite et sur "Execute". Mais au lieu d'avoir le résultat attendu, un message d'erreur est affiché :

"Date cannot be resolved to a type"

Le problème ici est que la classe "Date" de la bibliothèque standard est dans le package "java.util" et il faut l'importer pour que notre code fonctionne

Note :
Pour effacer une partie d'un code, comme par exemple un message d'erreur -> sélectionner cette partie -> Suppr sur le clavier

12. Importer des packages Java :

Sélectionner le code -> clic droit -> Set Imports

Note :
L'importation d'un package persiste tant que la JVM n'est pas terminée après l'exécution du code dans "Scrapbook Page"

Note :
Importer un package peut se faire aussi avec le bouton "Sets the Import declarations for Running Code" dans la barre d'outils.

Note :
"classpath" et external jar pour la "Scrapbook Page" sont hérités de son projet

13. Ajouter Package ou classe ?

Dans la boîte de dialogue qui s'ouvre -> un clic sur le bouton "Add Pakcages" permet d'ajouter un package complet comme par exemple "java.util"

Le bouton "Add Type" permet d'importer une classe comme par exemple "ArrayList"

14. Entrer le nom du package à importer :

Dans la boîte de dialogue "Add Packages as Import" -> Enter dans la zone de texte -> "java.util" -> un clic sur OK -> un deuxième clic sur "OK" pour terminer l'importation

15. Exécuter le code :

Sélectionner le texte dans "test.jpage" -> clic droit -> "Execute"

L'exécution se déroule après l'importation de "java.util" sans problème

16. Evaluer le résultat d'une expression :

"Scrapbook Page" permet d'évaluer aussi des expressions et d'afficher des résultats directement dans l'éditeur.

Essayons un exemple :

1.Entrer le code suivant dans "test.jpage"
int x=2;
int y=5;
x=x*y

2.Sélectionner l'ensemble du code

3.Un clic sur l'icône "J" ou "Display" ou un clic droit sur le code -> "Display" ou "Shift+CTRL+D" pour commencer l'évaluation.

4.Le résultat est affiché suite à "x=x*y" :

int x=2;
int y=5;
x=x*y(int) 10

Note :
Le résultat de "Display" est la valeur de retour de la dernière méthode exécutée
Pour une fonction sans valeur de retour ou "void" l'affichage est :

" (No explicit return value)"

17. Inspect et les expressions :

Il est aussi possible avec "Scrapbook Page" de voir les détails d'un objet avec "Inspect". Cette fonction est pratique pour les objets complexes.

Note:
Les fonctions d'"Inspect liées au debugger d'Eclipse n'entre pas dans le cadre de ce tutoriel.

1.Entrer le code suivant dans "test.jpage"

ArrayList list=new ArrayList();
list.add("phrase1");
list.add("phrase2");
list.add("Bonjour");
list

2.Sélectionner l'ensemble du code

3.Un clic sur l'icône "Loupe" ou "Inspect" ou "Shift+CTRL+l" ou un clic droit ->Inspect

18. Les détails internes :

Avec "Inspect" l'état interne de l'objet est affiché. Pour chaque champ, son nom et sa valeur sont affichés.

Les triangles bleus : champs protégés
Carrés rouges : champs privés
Cercles verts : champs publiques

Note :
"Inspect" comme "Display" retourne le résultat de la dernière méthode exécutée

19. Expression View :

"SHIFT+CTRL+I" pendant l'affichage d'une opération "Inspect" permet d'ouvrir une fenêtre d'expression pour le résultat

20. Le bouton "Show Type Name" de la vue "Expression"

Show type Name

Permet d'afficher ou non le type d'une variable avant son nom

21. L'Accès de Scrapbook aux classes :

Scrapbook peut accéder directement aux classes dans le même projet, selon les modificateurs d'accès, bien sûr.

Par exemple en créant la classe "Bonjour" dans le même projet comme suite :

public class Bonjour {


public void dire(String s)
{
System.out.println(s);
}

}

Il suffit d'entrer dans "test.jpag"
new Bonjour().dire("Bonjour le monde !!!");

Pour pouvoir utiliser la méthode "dire(String s)" définie dans la classe "Bonjour"

Note :
Scrapbook Page étant créée à l'intérieur d'un projet Java, les classpath et les fichiers .jar sont ceux du projet.

22. Utiliser l'assistant dans "Scrapbook Page"

Scrapbook Page comme les autres éditeurs d'Eclipse permet d'afficher des propositions pour compléter le code en cours "CTRL+Espace"

Note :
Il est possible des modifier les propriétés de l'éditeur avec un clic droit -> Preferences

23. Tester des composants graphiques :

De la même manière il est possible d'entrer des instructions pour les créations des composants graphiques.

Exemple :
javax.swing.JFrame frame=new javax.swing.JFrame();
frame.setTitle("Test JFrame");
frame.setBounds(0,0,400,300);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setVisible(true);

24. Les boutons de la barre d'outils :

Inspect, Display, Set Imports, Stop, Execute sont des boutons dans la barre d'outils

25. Site :

http://www.eclipse.org

Programmez! n° 133
Le numéro 133 de Programmez! est disponible en kiosque.





Proposer un tutoriel
Vous souhaitez partagez vos connaissances avec les membres de Programmez! Publiez vos tutoriels.

L'auteur
ka (Kaesar ALNIJRES)

Développeur Java - Manager Web



http://www.iipt.fr

De A à Z
Programmez.com - 2010 - Tous droits réservés
Développement - WEB - ASP - PHP - C++ - Delphi - Java - Magazines - Ressources - Forum - Télécharger - Video - Emploi - Campus - .Net - Tutoriels

Le portail du décideur informatique en entreprise : Solutions & Logiciels