0Pricing
Java Academy · Leçon

module-info.java

Déclarez un module

module-info.java est une leçon Java Academy gratuite sur CoddyKit. Ceci est la leçon 1 sur 4. Tu peux lire la leçon complète ci-dessous gratuitement — puis la pratiquer en direct dans le navigateur avec un éditeur de code intégré et un tuteur IA 24/7. Elle fait partie du parcours d'apprentissage Java Academy, et ta progression se synchronise sur le web et l'application CoddyKit. Le cours Java Academy comprend 4 leçons au total.

Le système de modules

Le système de modules de la plateforme Java (JPMS), introduit dans Java 9, vous permet de regrouper des paquets en modules nommés, avec des dépendances et des frontières explicites.

La déclaration se trouve dans un fichier spécial : module-info.java.

Pourquoi utiliser des modules

Avant les modules, le chemin de classes était un ensemble plat et désorganisé de fichiers JAR. N'importe qui pouvait accéder à n'importe quelle classe publique, et les dépendances manquantes n'étaient détectées qu'à l'exécution.

Les modules ajoutent une encapsulation stricte et une configuration fiable, vérifiées lors de la compilation et du lancement.

Emplacement de la déclaration du module

module-info.java se trouve à la racine de votre arborescence de sources, au-dessus des dossiers de paquets. Il est compilé en module-info.class à la racine du module.

Il n'y en a exactement qu'un par module.

Déclaration minimale

Le module le plus simple ne contient qu'un nom. Par convention, les noms utilisent la notation DNS inversée, comme pour un paquet.

module com.example.app {
}

Déclarer une dépendance

Utilisez requires pour dépendre d'un autre module. Chaque module dépend implicitement de java.base ; vous n'avez donc jamais besoin de déclarer celui-ci.

module com.example.app {
    requires java.sql;
    requires java.logging;
}

Exposer un paquet

Par défaut, les paquets d'un module sont masqués. Utilisez exports pour rendre les types publics d'un paquet visibles aux autres modules.

module com.example.app {
    exports com.example.app.api;
}

Encapsulation forte

Tout paquet que vous n’export pas est complètement inaccessible depuis l’extérieur, même ses classes publiques. C’est la grande différence avec le monde du chemin de classes.

Les paquets internes restent internes, leur accès étant garanti par la JVM.

Règles de nommage des modules

Les noms de modules suivent les mêmes règles lexicales que les paquets : des identifiants séparés par des points. Choisissez un nom stable et globalement unique, car les autres modules en dépendent par son nom.

Renommer un module constitue une modification incompatible pour ses utilisateurs.

Un exemple plus complet

Une déclaration réelle combine les directives de dépendance et d’exportation. Ce module dépend de la journalisation et n’expose que le paquet de son interface de programmation publique.

module com.example.orders {
    requires java.logging;
    requires com.example.payments;

    exports com.example.orders.api;
}

Compiler un module

Vous compilez avec les options adaptées aux modules. Les options --module-source-path et -d indiquent au compilateur où se trouvent les sources et la sortie.

  • javac -d out --module-source-path src $(find src -name '*.java')
  • java --module-path out --module com.example.app/com.example.app.Main

Le chemin des modules

Les modules sont résolus depuis le chemin des modules (--module-path), le successeur modulaire du chemin de classes. Le lanceur lit le descripteur de chaque module pour construire un graphe de dépendances avant l’exécution.

Vérification rapide

Rappelez-vous la visibilité par défaut des paquets.

Récapitulatif

Vous avez appris les bases de module-info.java :

  • Un descripteur par module à la racine des sources
  • requires déclare les dépendances ; java.base est implicite
  • exports expose un paquet ; tout le reste est encapsulé
  • Construit et exécuté avec --module-path et --module

Ensuite : étude approfondie des directives de dépendance et d’exportation.

Questions Fréquemment Posées

La leçon « module-info.java » est-elle gratuite ?

Oui — le texte complet de « module-info.java » est gratuit à lire ici sur le web. Pour la pratiquer de manière interactive (un éditeur de code intégré et un tuteur IA 24/7) et déverrouiller le reste du cours Java Academy, passe à CoddyKit PRO. Le cours Java Academy comprend 4 leçons au total.

Qu'est-ce que j'apprendrai dans « module-info.java » ?

Déclarez un module Tu pratiques Java Academy avec du code pratique que tu exécutes directement dans le navigateur, et un tuteur IA 24/7 répond à tes questions au fur et à mesure que tu avances dans la leçon.

Dois-je avoir de l'expérience pour commencer Java Academy ?

Aucune expérience préalable n'est requise. Java Academy sur CoddyKit est structuré pour les débutants jusqu'aux apprenants avancés, donc tu peux commencer ici ou depuis le début et avancer à ton rythme. Ceci est la leçon 1 sur 4.

Combien de temps prend la leçon « module-info.java » ?

La plupart des leçons CoddyKit prennent environ 5–10 minutes. Chacune est courte et interactive, tu progresses régulièrement et tu repiques exactement où tu t'es arrêté sur le web et l'app.

Peux-tu écrire et exécuter du code dans cette leçon Java Academy ?

Oui. Chaque leçon Java Academy inclut un éditeur de code intégré, tu écris et exécutes du vrai code directement dans ton navigateur et tu reçois des retours IA instantanés — aucune configuration locale requise.

Toutes les leçons de ce cours

  1. module-info.java
  2. requires et exports
  3. Services avec provides/uses
  4. Migrer vers les modules
← Retour à Java Academy