Module là kết hợp code và data có tên, khai báo phụ thuộc module khác, export package chứa kiểu public truy cập được bên ngoài module, và chỉ định service dùng hoặc cung cấp. Tất cả khai báo trong file module-info.java tại thư mục gốc của module.
Có hai loại mệnh đề export trong module-info.java:
1) export <package>: Mặc định kiểu public của module không còn nhìn thấy bên ngoài module. Để public type của package nhìn thấy từ module khác, phải export package đó. Lưu ý ở cấp package, không phải cấp type đơn lẻ. Sub-package không được export.
Cho phép module khác dùng class/interface của package tp.com.tutorialspoint.model:
module com.tutorialspoint.model {
exports tp.com.tutorialspoint.model;
}
Rất quan trọng: một package chỉ xuất hiện trong một module. Nếu không sẽ báo lỗi:
Error:(1, 1) java: package exists in another module:
2) export <package> to <module>: Tăng cường bảo mật bằng cách hạn chế khả năng nhìn thấy package đến danh sách module hữu hạn: chỉ module liệt kê mới truy cập được các class đó.
module com.tutorialspoint.model {
exports tp.com.tutorialspoint.model
to com.tutorialspoint.gui;
}