A Deep Dive into The Java Platform Module System (JPMS)
3:57:25
Description
Learn the tools for creating modular, space-optimized, and extensible software in Java.
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
Who is this for?
What You Need to Know?
More details
DescriptionRecent 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
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
User Reviews
Rating

Udemy
View courses Udemy- language english
- Training sessions 23
- duration 3:57:25
- Release Date 2025/01/24