Một module tự động (automatic module) là file jar đặt trên modulepath. Có nhiều thư viện hiện có có thể dùng trong ứng dụng, và nhiều trong số đó chưa được module hóa. Để hỗ trợ di chuyển, chúng ta có thể thêm file jar của thư viện bất kỳ vào module path của ứng dụng, sau đó sử dụng các package trong file jar đó. Nó ngầm trở thành một automatic module và có thể được chỉ định trong chỉ thị requires của khai báo module. Tên file jar trở thành tên module của nó, phải là định danh Java hợp lệ dùng trong chỉ thị "requires".
Một automatic module:
- Ngầm xuất khẩu (exports) tất cả kiểu package, nên bất kỳ module nào đọc được automatic module (kể cả unnamed module) có quyền truy cập public types trong các package của automatic module.
- Ngầm đọc (requires) tất cả module khác, bao gồm cả automatic module khác và unnamed module, do đó automatic module có quyền truy cập tất cả public types đượcExpose bởi các module khác của hệ thống.
%JAVA_HOME%\java --module-path ./libs:./libs-legacy --module app/com.app.Main
Quy tắc đặt tên Automatic Module:
- Xóa phần mở rộng ".jar".
- Xóa số phiên bản. Ví dụ: mylib-1.2.3 -> mylib
- Thay thế ký tự không phải chữ số bằng dấu chấm.
- Thay thế dấu chấm lặp lại bằng một dấu chấm, xóa dấu chấm ở đầu và cuối chuỗi.