CodeGym
Promotion
Apprentissage
Cours
Exercices
Sondages & Quiz
Jeux
Aide
Planning
Communauté
Utilisateurs
Forum
Chat
Articles
Témoignages de réussite
Activité
Avis
Abonnements
Thème clair

Leçons

  • Avis
  • À propos de nous
Commencer
Commencer à apprendre
Commencez à apprendre maintenant
  • Mes progrès
  • Cours
  • Carte des quêtes
  • Leçons
  • module-info.java : syntaxe, création de modules

    JAVA 25 SELF
    Niveau 60,Leçon 1
    Nous expliquons ce qu’est le fichier module-info.java, où il se trouve dans le projet et comment déclarer un module à l’aide du mot-clé module. Nous apprenons à exporter une API via exports, à déclarer des dépendances via requires, et nous examinons aussi des directives supplémentaires ( opens, uses, provides ... with). Dans ce cours — exemples, règles de nommage des modules, analyse pratique de la structure du projet et erreurs typiques lors de l’assemblage modulaire.
    Disponible
  • Encapsulation par modules : export et import

    JAVA 25 SELF
    Niveau 60,Leçon 2
    Comment Java 9+ a ajouté une encapsulation modulaire par-dessus les classes et les packages : même les classes public sont cachées tant que le package n’est pas explicitement ouvert via exports dans module-info.java. Nous expliquons comment déclarer des dépendances avec requires, comment limiter la visibilité avec exports to, en quoi le niveau module diffère de private/ public, et quels messages d’erreur de compilation (par exemple, « package ... is not visible », « cannot access ... ») indiquent que vous avez oublié exports ou requires.
    Disponible
  • Découpage du projet en modules : bonnes pratiques

    JAVA 25 SELF
    Niveau 60,Leçon 3
    Guide pratique de l’architecture modulaire en Java : quand et pourquoi découper le code en modules, schémas types (architecture « en oignon », séparation en api/ impl, modules de tests), configuration des dépendances via module-info.java et les mots-clés requires/ exports, exemples concrets d’un projet à 3 modules, intégration avec Maven/ Gradle et IntelliJ IDEA, ainsi qu’une analyse des erreurs courantes (dépendances circulaires, packages non exportés, --module-path incorrect).
    Disponible
  • Compilation de projets multi-modules: Maven, Gradle, IDEA

    JAVA 25 SELF
    Niveau 60,Leçon 4
    Comment assembler un projet modulaire en Java: différence entre classpath et module-path, quand utiliser l’option --module-path, comment configurer une structure multi-modules avec Maven et Gradle, et comment tout lancer depuis IntelliJ IDEA. Nous montrerons la structure des modules avec module-info.java, les dépendances via requires/ exports, la configuration des plugins et les erreurs fréquentes lors de l’assemblage.
    Disponible
  • ProcessBuilder — exécuter des processus externes

    JAVA 25 SELF
    Niveau 61,Leçon 0
    Voyons comment lancer des commandes et utilitaires externes depuis Java à l’aide de la classe ProcessBuilder : en quoi elle est préférable à Runtime. getRuntime(). exec(), comment configurer le répertoire de travail via directory(), les variables d’environnement via environment(), et piloter le processus via start(), waitFor(), les flux getInputStream()/ getErrorStream()/ getOutputStream(). Nous aborderons la multiplateforme ( cmd.exe/ ls), la gestion de stdout/ stderr et les erreurs courantes.
    Disponible
  • Lecture de la sortie d’un processus, gestion de stdin/stdout

    JAVA 25 SELF
    Niveau 61,Leçon 1
    Pratique de la manipulation de processus externes en Java : comment lire stdout via Process.getInputStream(), capter les erreurs depuis stderr via Process.getErrorStream(), écrire sur stdin à l’aide de Process.getOutputStream(), ainsi qu’utiliser les méthodes pratiques inputReader()/ errorReader()/ outputWriter(). Nous examinerons les particularités de commandes comme java -version, la lecture parallèle des flux pour éviter un deadlock, la gestion des encodages ( "UTF-8") et un petit bridge avec des scripts Python.
    Disponible
  • Gestion du cycle de vie d’un processus

    JAVA 25 SELF
    Niveau 61,Leçon 2
    Pratique de la gestion des processus externes depuis Java : attendre la fin via waitFor() (y compris avec des délais d’attente), lire le code de sortie, arrêter proprement via destroy()/ destroyForcibly(), éviter les blocages et les processus « zombies », sans oublier les flux de sortie et les exceptions. Nous passons en revue les nuances multiplateformes et les erreurs courantes.
    Disponible
  • Interaction interactive avec des processus

    JAVA 25 SELF
    Niveau 61,Leçon 3
    Dans ce cours, nous verrons comment organiser depuis Java un dialogue « en direct » avec des programmes externes : écrire dans stdin, lire depuis stdout et stderr, éviter les blocages mutuels ( deadlock), traiter la sortie en parallèle via ExecutorService, fermer correctement les flux et gérer le cycle de vie d’un Process au moyen de ProcessBuilder. Nous regarderons des exemples avec un script interactif en Python et l’utilitaire bc, ainsi que les pièges de la mise en tampon et la nécessité d’appeler flush().
    Disponible
  • Analyse des erreurs courantes lors de l’utilisation des processus

    JAVA 25 SELF
    Niveau 61,Leçon 4
    Guide pratique pour une utilisation fiable des processus externes en Java : comment éviter les blocages dus aux flux stdout/ stderr non lus, configurer correctement les encodages de sortie (par exemple, UTF-8, CP866), tenir compte des différences multiplateformes des commandes ( ls vs dir), traiter les droits d’accès et les codes de sortie via process.exitValue(), fermer les ressources sans fuites et éviter les interblocages interactifs. Nous abordons le bon usage de ProcessBuilder, la lecture parallèle des flux (threads/ ExecutorService), l’arrêt correct via process.destroy(), ainsi que des chemins portables avec File.separator.
    Disponible
  • Introduction à la réflexion : la classe Class, à quoi elle sert

    JAVA 25 SELF
    Niveau 62,Leçon 0
    Nous verrons ce qu’est la réflexion en Java et pourquoi elle est utile aux frameworks et aux outils, comment fonctionne l’objet Class — le cœur de la réflexion — et les différentes façons de l’obtenir : via .class, getClass() et Class.forName(). Nous discuterons quand utiliser la réflexion et quand il vaut mieux s’en passer, nous examinerons des exemples d’obtention de métadonnées (nom, package, superclasse, interfaces), nous passerons en revue un mini‑utilitaire « Quelle est cette classe ? » et les erreurs typiques ( ClassNotFoundException, performances, sécurité).
    Disponible
  • Obtenir des informations sur les classes, les champs et les méthodes

    JAVA 25 SELF
    Niveau 62,Leçon 1
    Dans ce cours, nous étudions la réflexion en Java : comment, via Class-API, obtenir des informations sur les champs ( getFields()/ getDeclaredFields()), les méthodes ( getMethods()/ getDeclaredMethods()), les constructeurs ( getConstructors()/ getDeclaredConstructors()) et les annotations ( getAnnotations()). Nous examinerons les modificateurs via Modifier ( public, private, protected, static, final), clarifierons les différences entre « public » et « declared », construirons un mini utilitaire d’inspection de classes et verrons un schéma visuel.
    Disponible
  • Sécurité, limites et alternatives à la réflexion

    JAVA 25 SELF
    Niveau 62,Leçon 2
    Dans ce cours, nous examinons les risques et les limites de la réflexion : contournement de l’encapsulation via setAccessible( true), tentatives de modifier des champs final et pourquoi c’est dangereux à cause des optimisations de la JVM ; le destin de SecurityManager et comment le système de modules (Java 9+) conduit à InaccessibleObjectException. Nous parlerons de perte de performances et de sécurité de typage, des alternatives modernes ( record, sealed, pattern matching, APT, DI) et des bonnes pratiques. Pour finir — un exemple pratique avec le paramètre JVM --add-opens.
    Disponible
  • 1
  • ...
  • 26
  • 27
  • 28
  • 29
  • 30
Apprendre
  • Inscription
  • Cours Java
  • Aide pour les exercices
  • Tarifs
  • Syntaxe Java
Communauté
  • Utilisateurs
  • Articles
  • Forum
  • Chat
  • Témoignages de réussite
  • Activité
  • Programme d'affiliation
Entreprise
  • À propos de nous
  • Contacts
  • Avis
  • Espace presse
  • CodeGym pour l'éducation
  • FAQ
  • Support
CodeGymCodeGym est un cours en ligne pour apprendre la programmation Java depuis le début. Ce cours est un moyen idéal pour maîtriser Java pour les débutants. Il contient plus de 1200 exercices avec vérification instantanée et un ensemble essentiel de notions fondamentales de Java. Pour vous aider à réussir, nous avons mis en place des fonctionnalités motivantes : quiz, projets de codage, contenu sur l'apprentissage efficace, et une rubrique sur la carrière de développeur Java.
Suivez-nous
Langue de l'interface
English Deutsch Español हिन्दी
Français
Português Polski বাংলা 简体中文 मराठी தமிழ் Italiano Bahasa Indonesia 繁體中文 Nederlands 日本語 한국어 Bulgarian Danish Hungarian Basa Jawa Malay Norwegian Romanian Swedish Telugu Thai Українська Filipino Turkish Azərbaycan Русский Vietnamese
"Les programmeurs se forment, ils ne naissent pas" © 2026 CodeGym
MastercardVisa
"Les programmeurs se forment, ils ne naissent pas" © 2026 CodeGym