Udemy
    •  
    •  
    •  
    •  
    •  
    •  
    •  
    •  
Turn what you know into an opportunity and reach millions around the world.
Learn More
Your cart is empty.
Keep shopping
A Deep Dive into The Java Platform Module System (JPMS)
Rating: 4.9 out of 5(14 ratings)
122 students

A Deep Dive into The Java Platform Module System (JPMS)

Learn the tools for creating modular, space-optimized, and extensible software in Java.
Created byDheeru Mundluru
Last updated 2/2026
English
English [Auto],

What you'll learn

  • Get clear & in-depth understanding of JPMS and how it enables stronger encapsulation, reliable configuration, and creation of smaller distributables
  • Learn how to create completely decoupled services following proper design patterns avoiding the need for redeploying the application
  • Learn how to create modular code via modules from both within and outside of Eclipse
  • Learn how non-modular code can work with modular code and vice-versa
  • Learn how to create Custom Space-Optimized JRE with only required Modules

Course content

5 sections40 lectures5h 12m total length
  • Course Introduction4:53

    Explore the Java platform module system and learn how modular software with modules and a module graph delivers stronger encapsulation, security, extensibility, and maintainability.

Requirements

  • Knowledge of Core Java

Description

Recent Updates: Added a new section on JPMS Services, which help in creating completely decoupled services

This course provides an in-depth understanding of the Java Platform Module System (JPMS) and how it enables the creation of modular, strongly encapsulated, and space-optimized software that is extensible. JPMS is a major feature of Java 9, introduced as part of Project Jigsaw to address challenges faced by earlier versions of Java.

When building large, complex software, it is crucial that the code is easy to understand, maintain, secure, and extend. These are essential goals for any well-designed system. Prior to Java 9, achieving these goals relied heavily on design principles like Information Hiding, which utilized packages and access modifiers. However, in some cases, packages and access modifiers fell short, compromising these objectives. Java also faced significant issues with configuration (commonly referred to as JAR hell) and the tendency to ship as a monolithic library. JPMS resolves these limitations by introducing modules, a new layer of abstraction that ensures better encapsulation, more reliable configuration, and the ability to create space-optimized, extensible software.

In this course, we begin by exploring the problems JPMS was designed to solve, helping you understand its purpose clearly. Next, we’ll dive into the anatomy of a module and how to create them from both the command line and Eclipse. You’ll also learn how modular and non-modular code can interoperate. One of the most exciting features of JPMS is the ability to create custom runtime images (JREs) or smaller distributables, and in this course, you’ll learn exactly how to do that—an essential skill for every developer. Finally, we learn about JPMS Services. Considered the cornerstone of modular programming, JPMS Services enable our application to be extensible allowing us to add new services at runtime.

Each concept is thoroughly explained with realistic examples, clear illustrations, and practical demonstrations to ensure you grasp the material fully.

Who this course is for:

  • Developers who are not familiar with JPMS