Keyboard shortcuts

Touchez ← ou → pour naviguer les chapitres

Touchez S ou / pour chercher dans le livre

Touchez ? pour afficher ce message

Touchez Esc pour masquer ce message

Accueil > Programmer avec Java > PrĂ©prarer l’environnement de dĂ©veloppement >

📚 Utiliser Java

Survol et attentes

Définitions
REPL
une interface de ligne de commande pour un langage de programmation qui attend une entrĂ©e tapĂ©e par l’utilisateur (Read), Ă©value l’expression tapĂ©e (Evaluate), affiche le rĂ©sultat (Print) et recommence (Loop). Le REPL Java s’appelle jshell. Les REPL sont des moyens efficaces d’exĂ©cuter des petits morceaux de code pour voir comment ils fonctionnent.
Compilateur
un programme qui traduit le code source (texte) en code objet (binaire) et l’enregistre dans un fichier. Pour exĂ©cuter le programme, il faut utiliser le code objet. Le compilateur Java s’appelle javac - dit “Java C” - mais il ne produit pas de code objet. Il produit plutĂŽt du bytecode Java et des fichiers .class. L’avantage du bytecode est qu’il peut ĂȘtre exĂ©cutĂ© sur n’importe quelle machine oĂč la machine virtuelle Java (JVM) est installĂ©e tandis que le code objet est spĂ©cifique Ă  une machine.
Interpréteur
un programme qui traduit le code source en code objet et l’exĂ©cute directement. L’interprĂ©teur Java - le Java Virtual Machine (JVM) - s’appelle java mais il ne prend gĂ©nĂ©ralement pas le code source en entrĂ©e. Il prend plutĂŽt le bytecode Java produit par son compilateur. Par contre, depuis Java 11 le JVM peut interprĂ©ter directement un programme qui se tient Ă  un seul fichier de code source .java.

Objectifs d’apprentissage

À la fin de cette leçon vous devrez ĂȘtre en mesure de :

  • Distinguer un compilateur et un interprĂ©teur.
  • Associer des extensions de fichiers (.java, .class, .exe) au type de code qu’ils contiennent : code source, code objet ou bytecode.
  • DĂ©crire la fonction des commandes Java suivantes : javac, java, et jshell.

CritĂšres de succĂšs

  • Je peux utiliser les outils Java pour tester les exemples de code dans les notes de cours et pour lancer les programmes dans mon code source.

Travailler avec des extraits de code

Pour tester des extraits de code avec Java 9 ou plus récent, on peut utiliser un REPL Java.

Le REPL Java s’appelle jshell. Pour lancer jshell, tapez simplement jshell au terminal. Vous devriez voir un prompt jshell> qui attend votre entrĂ©e.

PS ~\Documents> jshell
|  Welcome to JShell -- Version 20.0.1
|  For an introduction type: /help intro

jshell>

Cela signifie que le terminal attend des instructions Java qu’il peut Ă©valuer. Essayez d’entrer une expression simple comme 2 + 2 et appuyez sur Enter. Vous devriez voir le rĂ©sultat de l’expression affichĂ© Ă  l’écran.

jshell> 2 + 2
$1 ==> 4

Le $1 est un numĂ©ro de rĂ©fĂ©rence pour le rĂ©sultat de l’expression. Si vous entrez une autre expression, elle sera rĂ©fĂ©rencĂ©e par $2, et ainsi de suite. Vous pouvez utiler ces rĂ©fĂ©rences plus tard pour accĂ©der Ă  la valeur.

jshell> $1
$1 ==> 4

Pour quitter jshell, tapez la commande /exit.

jshell> /exit
|  Goodbye

Travailler avec le code source

Le code source Java se trouve dans des fichiers avec l’extension .java. Il y a trois façons de lancer un programme Java à partir de son code source :

  • l’interprĂ©ter directement via une commande au terminal
  • compiler le code source en bytecode Java et interprĂ©ter le bytecode avec des commandes au terminal
  • avec les outils d’un EDI qui compilent et interprĂštent le code source pour vous

L’interprĂ©ter directement avec java

Pour interpréter votre code source directement, vous avez besoin de la version Java 11 ou plus récent. Au terminal, tapez la commande suivante :

java chemin/au/fichier/MonProgramme.java

oĂč vous remplacez chemin/au/fichier/MonProgramme.java par le chemin complet vers votre fichier .java. Notez que vous devez inclure l’extension .java dans le nom du fichier pour l’interprĂ©ter directement.

Note : avec Windows, le sĂ©parateur de dossiers est le \. La commande java peut reconnaĂźtre les / mais si vous tentez d’utiliser la fonction de complĂ©tion automatique de Powershell, il remplacera les / par des \.

Quelques points importants :

  • Si vous ĂȘtes dans le dossier du fichier au terminal, le chemin complet est simplement le nom du fichier. Si vous avez ouvert le dossier du projet dans votre EDI, ce sera le comportement par dĂ©faut : l’EDI ouvre le terminal dans le dossier du projet.

    java MonProgramme.java
    
  • Si vous ĂȘtes dans un dossier diffĂ©rent au terminal, vous devez spĂ©cifier le chemin complet ou vous diriger dans le bon dossier au terminal avec la commande cd suivi par le chemin du dossier.

    java .\Documents\MonProgramme.java
    
    cd Documents
    java MonProgramme.java
    

Compiler et interpréter avec javac et java

Ici la mĂȘme approche gĂ©nĂ©rale s’applique sauf qu’on lance le programme en deux Ă©tapes. L’avantage est que si le code source ne change plus, lancer le programme est plus rapide : le temps pour la compilation est dĂ©jĂ  fait et on peut en profiter en utilisant le fichier .class dĂ©jĂ  compilĂ©.

Aussi, dans des programmes plus complexes qu’un seul fichier de code source, cette dĂ©marche est nĂ©cessaire pour lier les fichiers ensemble.

Vous ĂȘtes dans le bon dossier

PremiĂšre fois :

javac MonProgramme.java
java MonProgramme

AprÚs la premiÚre fois : on lance le bytecode déjà compilé

java MonProgramme

Notez que la commande java prend le nom de la classe, pas le nom du fichier .java.

Vous ĂȘtes dans un dossier diffĂ©rent

PremiĂšre fois :

javac .\Documents\MonProgramme.java
java -cp .\Documents MonProgramme

Comme avec l’interprĂ©tation direct, il faut spĂ©cifier le chemin complet pour la premiĂšre commande, dans ce cas javac. Pour la deuxiĂšme commande - java, on utilise l’option -cp (pour classpath) pour spĂ©cifier le dossier oĂč se trouve le fichier .class. Finalement, on donne le nom de la classe.

AprÚs la premiÚre fois : on lance le bytecode déjà compilé

java -cp .\Documents MonProgramme

Avec le bouton Run de l’EDI

Le bouton Run fait les mĂȘmes choses que la section suivante mais le fait automatiquement en tentant de suivre votre structure de dossier.

Ces outils s’attendent à ce que vos programmes se trouvent directement à la racine du dossier du projet. Si vous avez des sous-dossiers pour organiser vos fichiers, le bouton Run peut ne pas fonctionner correctement et d’autres outils de l’EDI peuvent vous donner des avertissements ou des messages d’erreur. C’est le problùme avec un outil qui tente d’automatiser : il ne peut pas toujours deviner ce que vous voulez faire.

Exercices

📚 Tester la comprĂ©hension

Quiz de vérification sur les outils Java

đŸ› ïž Pratique

Ces instructions prĂ©sument que vous avez fait le travail prĂ©cĂ©dent (dans la leçon sur l’EDI) : le dossier “Documents” est ouvert dans VS Code et il contient le programme HelloWorld.java.

  1. Lancez le programme HelloWorld.java avec la commande java HelloWorld.java dans le terminal intégré de votre EDI.
  2. Compilez le programme HelloWorld.java avec la commande javac HelloWorld.java dans le terminal intégré de votre EDI. Rien ne devrait se produire sauf la création du fichier HelloWorld.class.
  3. Lancez le programme HelloWorld.class avec la commande java HelloWorld dans le terminal intĂ©grĂ© de votre EDI. Notez que c’est seulement le nom de la classe qui est donnĂ© Ă  la commande java pour utiliser le bytecode dĂ©jĂ  compilĂ©.
  4. Lancez le programme avec le bouton Run de votre EDI. Regardez attentivement la commande complùte qui s’affiche à la console. Cette commande commence par la version longue de java, inclut quelques options que nous n’utilisons pas quand on lance la commande manuellement et se termine avec quoi : le nom d’un fichier ou le nom de la classe? Selon votre observation, est-ce que cette commande interprùte directement le code source ou le compile d’abord avant de lancer le bytecode?
  5. Modifier et enregistrez le code dans HelloWorld.java, p.ex. pour afficher un message différent.
    • InterprĂ©tez directement le programme modifiĂ© avec la commande java HelloWorld.java.
    • Lancez la version compilĂ©e manuellement avec la commande java HelloWorld. Est-ce que la version compilĂ©e a changĂ©? Si oui, qu’avez-vous fait pour que ça change? Si non, pourquoi pas?
    • Lancez le programme avec le bouton Run. Est-ce que le programme a changĂ©? Les outils de l’EDI s’occupent de compiler automatiquement les fichiers de vos projets.

© 2022-2025 David Crowley