Archives Wild Code School
Java

Java 01 : Le JDK

Quête 7 sur 43

Ça y est, tu peux enfin te lancer dans le développement, le vrai, le Java ! Cependant, avant de sauter dans le vide, attache d'abord ton parachute en réalisant cette quête.

Tu vas y apprendre les bases du langage Java, afin de les mettre en pratique tout de suite !

Objectifs

  • Installer le JDK
  • Comprendre les notions de langage Java, JRE, JDK et JVM
  • Créer et compiler une classe

Installer le JDK

Le Java est un langage de programmation, mais souvent par abus de langage, on dit que l'on va "installer Java" sur son ordinateur.

En fait, lorsqu'on veut exécuter des programmes écrits en langage Java, on n'installe pas le langage Java lui-même, mais le JRE (Java Runtime Environment).

Cependant, un programme écrit en Java doit être transformé afin d'être compris par la machine : on appelle cela la compilation. Le compilateur se trouve dans le JDK (Java Development Kit).

Comme ton but est de créer tes propres programmes en Java, et donc de les compiler puis de les exécuter, en théorie il te faudrait installer le JRE et le JDK. Cependant, le JDK seul est suffisant, car il contient à la fois les outils de compilation et d'exécution.

L'installation est très simple : suis les consignes de téléchargement du JDK via ce lien.

Un fois le JDK installé, vérifie la version avec la commande suivante :

bash
javac --version

Tu devrais avoir la version 21 ou supérieure. Si ce n'est pas le cas, demande de l'aide autour de toi.

↗
Java SE, Java EE, JDK, JRE quelles différences ?
java.com
↗
Installation Java Development Kit
oracle.com

Ta première classe

1. Création du fichier

Tu vas pouvoir te dégourdir les doigts en tapant quelques lignes de codes, afin de créer ton tout premier programme en Java !

En premier lieu, crée dans ton répertoire personnel un dossier JavaProjects, qui contiendra tes futures applications Java.

Dans JavaProjects, crée un dossier JavaIntro et, dans ce nouveau dossier, crée un fichier vide HelloWorld.java

Tu devrais avoir l'arborescence suivante :

bash
~/JavaProjects/JavaIntro/HelloWorld.java

Un fichier Java doit avoir l'extension .java, et un nom anglais écrit en CamelCase commençant par une majuscule.

2. Déclaration de la classe

On appelle ce fichier Java une classe. Une classe doit avoir le même nom que le fichier (sans l'extension) et se déclare de la façon suivante :

java
class ClassName {

}

Ici, ClassName doit être remplacé par le nom de notre classe, à savoir HelloWorld.

3. Méthode

Telle quelle, cette classe ne te servira à rien. Il lui faut un point d'entrée afin de pouvoir y exécuter une série d'actions.

Ce point d'entrée est la méthode main(). Entre les accolades de la classe HelloWorld, ajoute le code suivant :

java
public static void main(String[] args) {
    // afficher Hello World! dans le terminal
}

Nous décomposerons l'écriture de cette méthode plus tard. Pour le moment, contente-toi de l'utiliser telle quelle :)

4. Afficher un message

En l'état, ta méthode main() ne fait rien. Tu vas afficher un message contenant le texte (très original) suivant : "Hello World!".

Pour ce faire, ajoute le code suivant, en dessous du commentaire // afficher Hello World! dans le terminal :

java
System.out.println("Hello World!");

Un commentaire est une partie de code qui n'est pas exécutée par le programme. En Java, tu peux faire des commentaires de deux façons différentes : soit sur une ligne, en ajoutant // au début du commentaire, soit sur plusieurs lignes, en ajoutant /* au début du commentaire et */ après le commentaire

5. Indentation

Dernière étape avant l'exécution de ton programme : il faut vérifier si tu as bien indenté ton code !

L’indentation en Java n'est pas obligatoire pour que la compilation réussisse, contrairement au langage Python, par exemple. Cependant, elle rend le code humainement lisible, et comme tu seras amené à travailler avec d'autres êtres humains, ça tombe bien !

"Indenter" consiste à aligner des blocs de codes sur plusieurs niveaux horizontaux, afin d'en faciliter la compréhension.

Les deux règles principales sont les suivantes :

  • si tu ouvres une accolade, la ligne suivante est indentée d'une tabulation (ou de quatre espaces) vers la droite.

  • si tu fermes une accolade, la ligne suivante est désindentée d'une tabulation (ou de quatre espaces) vers la gauche.

Voyons un exemple :

java
class ClassName {

    public static void main(String[] args) {
        // do stuff
        System.out.println("Awesome !");
    }
}

Comme présenté dans l'exemple, on saute deux lignes après la déclaration d'une classe, pour plus de lisibilité.

↗
Java main Method Explained
baeldung.com

Compilation

Si tout s'est bien passé précédemment, tu devrais avoir le code suivant dans ta classe :

java
class HelloWorld {

    public static void main(String[] args) {
        // afficher Hello World! dans le terminal
        System.out.println("Hello World!");
    }
}

Le Java est un langage compilé, il ne peut pas être exécuté tel quel par la machine : il faut donc utiliser un outil pour transformer ce langage en bytecode.

Un programme compilé en Java n'est pas directement exécuté par le processeur de la machine, mais par la JVM (Java Virtual Machine), l'avantage étant qu'une fois le code compilé en bytecode, il peut être exécuté sur des machines et des systèmes d'exploitation différents, sans avoir à être modifié.

Imagine la JVM comme un traducteur multilingue, qui s'occupe d'expliquer ton programme à la machine qui l'exécutera.

Tu vas donc compiler ta classe HelloWorld à l'aide de l'outil javac, que tu as précédemment installé avec le JDK.

La commande pour compiler une classe Java est la suivante :

bash
javac ClassName.java

Ici, tu vas devoir adapter la commande en utilisant le nom de ton fichier.

Si tout se passe bien, tu devrais avoir un message commençant par done. Dans le cas contraire, regarde bien le message d'erreur afin d'avoir une piste permettant de corriger le problème :

  • le nom du fichier est-il le bon ?

  • as-tu enregistré le fichier après l'avoir modifié ?

  • exécutes-tu bien la commande au même endroit que se situe la classe ?

  • as-tu copié-collé le code correctement (regarde en haut de la page pour vérifier) ?

  • javac est-il bien installé ?

Regarde le contenu de ton dossier, tu devrais y trouver le nouveau fichier HelloWorld.class. C'est le fichier compilé ! Si tu affiches son contenu, tu verras qu'il n'est pas complètement lisible par un humain : c'est le bytecode, qui sera exécuté par la JVM !

↗
What is Java bytecode?
quora.com
↗
How to use javac command
dummies.com

Exécution

Tous tes efforts vont enfin payer ! Pour lancer le fruit de ton dur labeur, tu devras exécuter le programme dans le JRE, avec la commande java :

bash
java ClassName

Attention, comme tu peux le remarquer, il faut exécuter la commande avec le nom de la classe et non celui du fichier, donc sans l'extension .java !

Si tout se passe bien, tu devrais voir le résultat du programme dans le terminal : l'affichage du texte "Hello World!".

Dans le paragraphe précédent, nous avons vu que le bytecode était compilé dans le fichier HelloWorld.class, qui n'était pas particulièrement lisible par un humain.

La commande javap permet de "désassembler" un programme : voir le contenu du code compilé dans un langage plus compréhensible, tel qu'il sera compris par la machine.

Tu peux l'essayer sur ton code compilé :

bash
javap -c HelloWorld.class

Ce n'est pas très simple d'un premier coup d’œil, mais les commentaires expliquent en détail ce que fait chaque ligne. Ne te formalise pas si tu n'y comprends pas grand-chose, ce n'est pas nécessaire pour la suite !

Challenge

Crée ton propre script

  1. Crée un nouveau dossier dans JavaProjects, que tu nommeras NoticeMe.
  2. Dans le dossier NoticeMe, crée la classe Senpai.java.
  3. Déclare ta classe Senpai et ajoute une méthode main(), telle qu'elle est montrée dans la quête.
  4. Dans ta méthode main(), ajoute le code permettant d'afficher le texte "Notice me Senpai".
  5. Compile et exécute le code afin de tester qu'il fonctionne correctement.
  6. Copie ton code dans un Gist et partage le fichier Senpai.java en solution.

Critères de validation

  • Le fichier doit bien s'appeler Senpai.java et la classe Senpai.
  • La classe doit se compiler sans message d'erreur.
  • À l'exécution de la classe compilée, le message "Notice me Senpai" doit apparaître dans le terminal.

Ressources partagées sur cette quête