วัตถุประสงค์หลักของฟีเจอร์ JLink คือการสร้าง Customized JRE (JRE ที่ปรับแต่งเอง) ปกติเรารันโปรแกรมกับ Default JRE ที่ Oracle จัดเตรียมไว้ ขนาดประมาณ 214 MB
ปัญหาของ Default JRE
ตัวอย่างโปรแกรม Hello World ขนาด 1 KB ต้องการแค่ 4-5 คลาส เช่น String System Object และ HelloWorldModuleTest.class ทำไมต้องโหลด JRE 214 MB? เป็นการสูญเปล่าหน่วยความจำ และไม่เหมาะกับ IoT devices ที่มีหน่วยความจำจำกัด
การสร้าง Custom JRE ด้วย JLink
jlink --module-path out --add-modules {modules} --output {jre-name}
คุณสมบัติสำคัญของ JLink
- ลดขนาด JRE: รวมเฉพาะโมดูลที่จำเป็น
- Compress: ระดับการบีบอัดระหว่างรันคำสั่ง JLink
- Launcher: สร้าง launcher ให้รันโปรแกรมได้จากที่ไหนก็ได้ในเครื่อง เพียงพิมพ์ชื่อโปรแกรมจาก command line โดยไม่ต้องระบุ java หรือ javac
JLink ทำงานร่วมกับ JPMS (Java Platform Module System) ทำให้สามารถสร้าง Runtime Image ที่เล็กลงได้มาก เหมาะสำหรับการ deploy บนคอนเทนเนอร์ ไมโครเซอร์วิส และอุปกรณ์ IoT