The Java Module System cover
welcome to this free extract from
an online version of the Manning book.
to read more

about this book


Java 9 introduced the Java Platform Module System (JPMS) to the language and ecosystem and made modularity primitives readily available to all Java developers. For most people, me included, these concepts are new, so this book teaches them from the ground up. It goes all the way from the motivation and basics to advanced features. More than that, it also helps you migrate your existing projects to Java 9+ as well as to incrementally modularize them if you want to do that.

Note that we do not set out to study modularity per se. This is a complex topic, and entire books have been written about it (for example, Java Application Architecture by Kirk Knoernschild [Prentice Hall, 2012]). But while we focus on putting modularity into action with the module system, you won’t be able to avoid learning about the reasons for doing so.

Who should read this book

The module system is an interesting beast. Its underlying principles and concepts are quite simple, yet its effects on the ecosystem aren’t. It’s not as immediately exciting as lambda expressions, but it will change the ecosystem just as thoroughly. In the end, all of that hardly matters, though. By now, it’s as much a part of Java as the compiler, the private modifier, and the if statement; and just as every developer needs to know those, they need to know about the module system.

How this book is organized: a roadmap

Parts and chapters

Pick your own path

Watch out for these

About the code

About the Java version

Code formatting conventions

Module name conventions

Placeholders in code snippets

Commands and their output

liveBook discussion forum