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
requiresdéclare les dépendances ;java.baseest impliciteexportsexpose un paquet ; tout le reste est encapsulé- Construit et exécuté avec
--module-pathet--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.