Compilation Java expliquée : comment fonctionne javac, étapes de compilation et erreurs courantes

Qu’est‑ce que la compilation Java ? | Comprendre la « compilation » pour les débutants

En Java, la « compilation » désigne le processus de conversion du code source écrit par l’homme (.java) en un format que la Java Virtual Machine (JVM) peut lire.
Le résultat de ce processus est un fichier .class, appelé bytecode.

Contrairement à des langages comme le C qui sont compilés directement en code machine natif, Java convertit d’abord le code source en bytecode puis l’exécute sur la JVM.
Grâce à ce mécanisme, le même fichier .class peut s’exécuter sur différents systèmes d’exploitation, permettant au même programme Java de fonctionner sous Windows, macOS et Linux.

Un autre point important à comprendre est que compilation et exécution sont des opérations distinctes.

  • « javac » → responsable de la compilation
  • « java » → responsable de l’exécution

Environ 90 % des débutants rencontrent des difficultés parce que cette distinction n’est pas claire.
Comprendre fermement que ces deux commandes ont des rôles différents est la première étape la plus efficace.

Prérequis pour la compilation Java

Pour compiler du code Java, vous devez disposer du JDK (Java Development Kit) installé.
Le JRE seul ne suffit pas, car le compilateur javac est un outil de développement inclus uniquement dans le JDK.

Commencez par vérifier les éléments suivants :

javac -version

Si cette commande renvoie un numéro de version, tout est en ordre.
Si vous voyez un message tel que « command not found », l’une des situations suivantes est probablement vraie :

  • Le JDK n’est pas installé
  • Le JDK est installé mais la variable PATH n’est pas définie
  • Seul le JRE est installé (pas d’outils de développement)

En particulier, la configuration du PATH constitue un obstacle fréquent pour les débutants.
Si le système ne trouve pas le répertoire contenant javac (ou le répertoire bin), la compilation ne fonctionnera pas.

Conclusion :
Vous ne pouvez commencer à compiler du Java qu’après avoir correctement effectué « l’installation du JDK » et « la vérification du PATH ».

Compiler un fichier Java en pratique

Ici, nous allons créer un petit programme d’exemple et le compiler avec javac.
Tout d’abord, enregistrez le contenu suivant dans un éditeur de texte.

Sample.java

public class Sample {
    public static void main(String[] args) {
        System.out.println("Hello Java!");
    }
}

Le nom du fichier doit être Sample.java, et il est crucial que le nom de la classe publique corresponde au nom du fichier.
Java ne compilera pas si cette règle est violée, ce qui constitue une erreur classique chez les débutants.

Ensuite, exécutez la commande suivante dans votre terminal ou invite de commandes :

javac Sample.java

Si la compilation réussit, un fichier Sample.class apparaîtra dans le même répertoire.
Cela indique que la compilation s’est terminée avec succès.

À ce stade, vous avez maintenant :

  • Sample.java (code source)
  • Sample.class (bytecode)

Avec cette paire en place, vous êtes prêt à exécuter un programme Java.

Exécuter un programme après la compilation

Après la compilation, l’étape suivante consiste à exécuter le fichier .class.
La commande utilisée ici est java, pas javac.

java Sample

Le point clé est de ne pas inclure l’extension .class.
Si vous écrivez java Sample.class, une erreur se produira.
Java est conçu pour lancer les programmes en spécifiant simplement le nom de la classe.

En résumé :

RoleCommandTarget
Compilejavac Sample.java.java file
Runjava SampleClass name (no extension)

Une fois que vous avez bien compris les rôles différents de javac et java, vous avez effectivement franchi le stade de débutant.

Si « Hello Java ! » apparaît à l’écran, votre programme s’est exécuté avec succès.
À ce moment, vous avez assimilé le flux de travail Java minimal requis.

Erreurs courantes et comment les corriger

Rencontrer des erreurs lors de la compilation Java est tout à fait normal pour les débutants.
Ici, nous nous concentrons sur les problèmes les plus fréquents rencontrés par de nombreux utilisateurs.

1) javac : command not found

Dans près de 100 % des cas, la cause est l’une des suivantes :

  • Le JDK n’est pas installé
  • Le PATH n’est pas configuré correctement

Solution :
Exécutez javac -version
→ Si cela ne fonctionne pas, réinstallez le JDK et revérifiez vos paramètres PATH.

2) La compilation réussit mais aucun fichier .class n’est généré

L’erreur la plus courante est :

Le nom du fichier ne correspond pas au nom de la classe publique

Exemple :

public class Test {
}

→ Cela entraînera une erreur de compilation.

3) Avertissements liés à l’encodage

warning: [options] bootstrap class path not set in conjunction with -source 1.7

Les avertissements de ce type ne sont généralement pas des erreurs fatales.
Cependant, ils peuvent indiquer des options de source obsolètes ou des incompatibilités d’encodage.
Pour éviter les problèmes, enregistrez toujours vos fichiers en UTF-8.

Compilation avec un IDE

Dans le développement Java réel, les développeurs exécutent rarement javac manuellement depuis la ligne de commande.
C’est parce que les IDE (Environnements de Développement Intégrés) gèrent la compilation automatiquement.

Les IDE suivants sont particulièrement populaires et pratiques :

IDEFeatures
IntelliJ IDEAThe de facto standard for modern Java development, suitable for professional use.
EclipseA long-established IDE widely used in enterprise projects.
VS CodeLightweight; Java Extension Pack provides a complete environment.

Les IDE compilent automatiquement votre code chaque fois que vous enregistrez un fichier et signalent immédiatement les erreurs.
Cela élimine de nombreux pièges pour les débutants, comme les fautes de frappe de commande et la mauvaise configuration du PATH.

Cela dit, compiler manuellement avec javac au moins une fois est utile pour comprendre le fonctionnement interne de Java.
Une fois que vous comprenez le flux « compiler → exécuter », votre vitesse d’apprentissage avec un IDE augmentera considérablement.

Options de base de javac

La commande javac prend en charge de nombreuses options qui contrôlent la façon dont la compilation est effectuée.
Au niveau débutant, vous n’avez besoin de comprendre que quelques-unes des plus courantes.

Voici trois options représentatives :

OptionDescriptionExample
-dSpecifies the output directory for class filesjavac -d out Sample.java
-classpathSpecifies external libraries or additional class pathsjavac -classpath lib/* Sample.java
--enable-previewEnables preview language featuresjavac --enable-preview Sample.java

L’option -d est particulièrement importante lors de l’utilisation de packages.
Par exemple, si vous utilisez package com.example;, omettre javac -d entraînera une structure de répertoires incorrecte.

À mesure que vous passez au développement réel, les options classpath et -d deviennent de plus en plus importantes.
Même les reconnaître tôt facilitera l’apprentissage futur.

Résumé

Pour exécuter un programme Java, vous devez comprendre le processus en trois étapes : écrire le code source → compiler → exécuter.
Une fois les rôles de javac (compilation) et java (exécution) clarifiés, le but de la compilation devient évident.

Les deux pièges les plus courants pour les débutants sont :

  • Le JDK n’est pas installé ou le PATH n’est pas configuré
  • Le nom du fichier ne correspond pas au nom de la classe publique

En les résolvant dès le départ, vous éviterez des détours inutiles dans votre apprentissage.
Vous pouvez passer au développement avec un IDE une fois à l’aise, mais comprendre le mécanisme sous-jacent améliorera considérablement votre vitesse d’apprentissage.

Utilisez cet article comme point de départ et concentrez-vous d’abord sur la conversion réussie d’un seul fichier .java en fichier .class.
Ce moment marque votre première vraie étape dans l’apprentissage de Java.

FAQ : Questions fréquentes sur la compilation Java

Q1 : Quelle est la différence entre javac et java ?
R : javac est la commande de compilation qui convertit les fichiers .java en fichiers .class.
java est la commande d’exécution qui lance les fichiers .class sur la JVM.

Q2 : Pourquoi Sample.class n’est pas généré ?
R : La raison la plus courante est une incompatibilité entre le nom du fichier et le nom de la public class.
Si la classe est public class Sample, le fichier doit s’appeler Sample.java.

Q3 : Dois‑je encore apprendre javac si j’utilise un IDE ?
R : Les IDE compilent le code automatiquement, mais sans comprendre le processus, il peut être difficile de savoir ce qui se passe en arrière‑plan. Expérimenter le flux de base une fois rend l’utilisation d’un IDE beaucoup plus simple.

Q4 : Quel JDK devrais‑je installer ?
R : Pour les débutants, les versions LTS d’Eclipse Adoptium (Temurin) sont faciles à utiliser.
Si vous n’avez aucune exigence particulière, Java 17 ou 21 sont des choix sûrs.

Q5 : J’obtiens javac: command not found
R : Cela signifie que le JDK n’est pas installé ou que le PATH n’est pas configuré.
Commencez par vérifier avec javac -version.