Java 9功能的主要变化之一是模块系统。java9在Jigsaw项目中引入了以下特性。
模块化JDK
模块化Java源代码
模块化运行时映像
封装Java内部API
Java平台模块系统
使用模块系统的主要动机之一是提供可在可用内存较少的设备上运行的模块化JVM。JVM仅与应用程序所需的那些模块和API一起运行。
module Module-Name { requires moduleName; exports packageName; }
模块化JAR文件包含一个附加的模块描述符。在这个模块描述符中,其他模块的依赖关系通过“requires”语句表示。“exports”语句控制哪些包可以访问其他模块。