A lọ nhiều bản phát hành (còn được gọi là mrjar ) chứa cùng một bản phát hành thư viện cho nhiều Jdk phiên bản . Điều đó có nghĩa là chúng ta có thể có một thư viện là mrjar hoạt động cho Jdk 9. Mã trong mrjar chứa lớp tệp được biên dịch trong Jdk 9 . Các lớp được biên dịch bằng Jdk 9 có thể tận dụng các API do Jdk 9. cung cấp.
mrjar có thể mở rộng cấu trúc thư mục đã tồn tại của một jar. Nó chứa một thư mục gốc nơi chứa tất cả nội dung của nó và META-INF thư mục đã được sử dụng để lưu trữ siêu dữ liệu về cái lọ. Thông thường, một lọ chứa META-INF / MANIFEST.MF tệp có chứa các thuộc tính.
Các mục trong lọ như sau:
- jar-root - C1.class - C2.class - C3.class - C4.class - META-INF - MANIFEST.MF
Trong mẫu trên, jar chứa bốn tệp lớp và một MANIFEST.MF tập tin. Mrjar mở rộng thư mục META-INF để lưu trữ các lớp có thể dành riêng cho phiên bản Jdk. META-INF thư mục chứa phiên bản thư mục con chứa nhiều thư mục con, mỗi thư mục được đặt tên giống như phiên bản chính của Jdk. Ví dụ:các lớp dành riêng cho Jdk 9, có một thư mục META-INF / phiên bản / 9 . Đối với các lớp dành riêng cho Jdk 10, có META-INF / phiên bản / 10 .
- jar-root - C1.class - C2.class - C3.class - C4.class - META-INF - MANIFEST.MF - versions - 9 - C2.class - C5.class - 10 - C1.class - C2.class - C6.class