Module คือชุดรวบรวมโค้ดและข้อมูลที่มีชื่อและอธิบายตัวเองได้ โค้ดจัดระเบียบเป็นชุดแพ็กเกจที่มี types เช่น Java classes และ interfaces ข้อมูลรวมถึง resources และข้อมูล static อื่นๆ เราต้องประกาศ module แล้วเพิ่ม module-info.java ที่ root ของ source code
ด้านล่างคือ template ของไฟล์ "module-info.java":
module <module-name> {
requires <module-name1> ;
requires <module-name2>;
exports <package-name1>;
exports <package-name2>;
exports <package-name> to <module-name>
}
เราสามารถใช้ command-line options บางอย่างที่ช่วยให้เรา แก้ไขโมดูลที่มีอยู่ และเพิ่ม dependencies, export เพิ่มเติมได้
ด้านล่างคือคำสั่ง command-line ที่ใช้แก้ไขโมดูลที่มีอยู่:
1) --add-reads <module>=<target-module>(,<target-module>)*
คำสั่งนี้อัปเดต <module> ให้อ่าน <target-module> ได้ ไม่ว่าจะประกาศ module อย่างไร <target-module> สามารถเป็น ALL-UNNAMED เพื่ออ่าน nameless modules ทั้งหมด
2) --add-exports <module>/<package>=<target-module>(,<target-module>)*
คำสั่งนี้อัปเดต <module> ให้ export <package> ไปยัง <target-module> ไม่ว่าจะประกาศ module อย่างไร <target-module> สามารถเป็น ALL-UNNAMED เพื่อ export ไปยัง nameless modules ทั้งหมด
3) --add-opens <module>/<package>=<target-module>(,<target-module>)*
คำสั่งนี้อัปเดต <module> ให้ open <package> ให้ <target-module> ไม่ว่าจะประกาศ module อย่างไร
4) --patch-module <module>=<file>(;<file>)*
คำสั่งนี้สามารถแทนที่หรือเพิ่มโมดูลด้วย classes และ resources ในไฟล์ jar หรือ directories