Mục đích chính của JLink là tạo Custom JRE (JRE tùy chỉnh). Mặc định JRE của Oracle cỡ ~214 MB. Chạy chương trình "Hello World" 1 KB chỉ cần vài class (String, System, Object, class chính) – nạp 214 MB là lãng phí, không phù hợp IoT/embedded.
Tạo Custom JRE với JLink
jlink --module-path out --add-modules {modules} --output {jre-name}
Tính năng nổi bật
- Giảm kích thước JRE chỉ chứa module cần thiết (nhờ JPMS).
- Nén (Compress): chỉ định level nén khi chạy JLink.
- Launcher: tạo script thực thi chương trình từ bất kỳ đâu chỉ bằng tên chương trình, không cần gõ
javahayjavac.
Ví dụ thực tế
Giả sử module app tên com.example.hello:
# Compile
javac -d out --module-source-path src $(find src -name "*.java")
# Tạo custom JRE
jlink --module-path out:$JAVA_HOME/jmods \
--add-modules com.example.hello \
--output myjre \
--compress=2 \
--launcher hello=com.example.hello/com.example.Main
# Chạy
./myjre/bin/hello
Kết quả: JRE chỉ vài chục MB, phù hợp container, IoT, serverless.