Accueil > Programmer avec Java > Préprarer l’environnement de développement >
jshell
. Les REPL sont des moyens efficaces d’exécuter des petits morceaux de code pour voir comment ils fonctionnent.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.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
.À la fin de cette leçon vous devrez être en mesure de :
.java
, .class
, .exe
) au type de code qu’ils contiennent : code source, code objet ou bytecode.javac
, java
, et jshell
.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.
1
2
3
4
5
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.
1
2
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.
1
2
jshell> $1
$1 ==> 4
Pour quitter jshell
, tapez la commande /exit
.
1
2
jshell> /exit
| Goodbye
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 :
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 :
1
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 commandejava
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 :
1
java MonProgramme.java
cd
suivi par le chemin du dossier.
java .\Documents\MonProgramme.java
cd Documents
java MonProgramme.java
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.
Première fois :
1
2
javac MonProgramme.java
java MonProgramme
Après la première fois : on lance le bytecode déjà compilé
1
java MonProgramme
Notez que la commande java
prend le nom de la classe, pas le nom du fichier .java
.
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
Run
de l’EDILe 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.
Quiz de vérification sur les outils Java
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.
HelloWorld.java
avec la commande java HelloWorld.java
dans le terminal intégré de votre EDI.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
.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é.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?java HelloWorld.java
.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?Run
. Est-ce que le programme a changé? Les outils de l’EDI s’occupent de compiler automatiquement les fichiers de vos projets.