Adding modules from a child layer

Alex Buckley alex.buckley at oracle.com
Fri Mar 14 15:13:03 UTC 2025


On 3/14/2025 3:54 AM, Simone Bordet wrote:
> As a side question, I was wondering what is the benefit of using
> ModuleLayers versus just using ClassLoaders.

As Alan mentioned, layers are how you get strong encapsulation, where 
the accessibility of classes in modules is enforced by the VM. This is 
not the same thing as isolating classes in different loaders, where 
reflection can be used to access any class.

Please watch 15 minutes of my JVMLS 2016 presentation, starting at:

https://www.youtube.com/watch?v=QnMDsI2GbOc&t=1479s

"Creating a layer informs the module system about the packages that will 
exist in the program, and the modules they'll come from. The module 
system passes this information to the VM, so that when classes are 
eventually loaded and defined, the VM knows which module a class belongs 
to, and what that module reads and exports. It's like the VM has a 
shadow copy of the module graph that it uses when checking accessibility 
between classes."

Alex


More information about the jigsaw-dev mailing list