แพคเกจคือการรวบรวมคลาสที่เกี่ยวข้องกันทั้งหมดเป็นกลุ่มเดียวกันเพื่อความครบถ้วนในการติดตั้งและใช้งาน โดยในแพคเกจจะประกอบไปด้วยคลาสและอินเตอร์เฟสตามที่ผู้สร้างแพคเกจกำหนด การตั้งชื่อแพคเกจจะใช้อินเตอร์เนตโดเมนเนมของผู้ที่เป็นเจ้าของแพคเกจโดยเขียนย้อนกลับและเป็นตัวอักษรเล็กทั้งหมด เช่น com.company เป็นต้น หากชื่อโดเมนตรงกับคีย์เวิร์ดในภาษาจาวา หรือขึ้นต้นด้วยตัวเลขให้เพิ่มขีดล่าง ( _ ) นำหน้า และให้ใช้ขีดล่างแทนขีดกลาง ( – ) ในชื่อโดเมนถ้ามี ในกรณีที่เราเขียนโปรแกรมเพื่อใช้งานของเราเองโดยไม่ได้แจกจ่ายเราสามารถใช้ com.example หรือ aug.example ซึ่งเป็นชื่อที่ถูกจองไว้โดยภาษาจาวาเพื่อกรณีเช่นนี้ เช่น com.example.projectname.packagename เป็นต้น
นอกจากการรวบรวมคลาสที่เกี่ยวข้องกันทั้งหมดเป็นกลุ่มเดียวกันแล้ว การใช้แพคเกจยังเป็นการระบุคลาสที่เราต้องการใช้ด้วย เนื่องจากภาษาจาวาเป็นที่นิยมและมีผู้ใช้งานมากมาย ดังนั้นจึงเป็นไปได้ว่าคลาสที่เราต้องการใช้งานอาจะมีชื่อซ้ำกับคลาสอื่นอีกเป็นร้อยเป็นพันคลาส ดังนั้นการระบุคลาสจะต้องอ้างอิงว่าเป็นคลาสจากแพคเกจใด ตัวอย่างเช่น เราต้องการใช้งานคลาส Node แต่คลาส Node มีอยู่ในหลายเพคเกจดังนั้นเราจึงต้องเลือกแพคเกจให้ถูกต้อง ดังตัวอย่างด้านล่าง
เมื่อเราเลือกแพคเกจที่ต้องการแล้ว โปรแกรม IntelliJ IDEA จะเพิ่มประโยคคำสั่งที่ตอนต้นของโปรแกรมเพื่อบอกว่าเราใช้คลาสจากแพคเกจใดให้ ตัวอย่างเช่น
นอกจากการอ้างอิงแพคเกจในรูปแบบนี้แล้วเรายังสามารถอ้างอิงแพคเกจโดยการระบุชื่อแพคเกจควบคู่กับคลาสที่ใช้งานในประโยคคำสั่งได้เลย แต่การระบุแบบนี้ไม่ว่าเราจะไปใช้คลาสนี้ตรงไหนจะต้องระบุแบบนี้เสมอซึ่งจะยุ่งยากและผิดพลาดได้ง่าย เว้นแต่ถ้าเราต้องใช้คลาสชื่อเดียวกันที่มาจากต่างแพคเกจจะต้องใช้วิธีนี้ช่วยในการอ้างอิงเพราะเราสามารถใช้คีย์เวิร์ด import สำหรับคลาสชื่อเดียวกันได้เพียงครั้งเดียว ตัวอย่างการอ้างอิงแพคเกจในบรรทัดประโยคคำสั่งเช่น
ในการเขียนโปรแกรมเราจะใช้งานคลาสจาก Java API ซึ่งโปรแกรม IntelliJ IDEA จะเพิ่มประโยคคำสั่ง import ให้เราอย่างอัตโนมัติ เว้นแต่แพจ
เกจบางแพคเกจที่เป็นแพคเกจพื้นฐานจะไม่ถูกแสดงเป็นประโยคคำสั่ง import
เราสามารถเรียกใช้ Java API ได้เพราะเราโหลดโปรแกรม JDKเข้ามาไว้ที่ โปรแกรม IntelliJ IDEA แล้วนั่นเอง เราสามารถดู Java API ทั้งหมดได้จาก External Libraries ตามภาพด้านล่าง
เราสามารถคลิกไปที่แต่ละคลาสหรืออินเตอร์เฟสเพื่อดูรายละเอียดของคลาสหรืออินเตอร์เฟสได้ดังตัวอย่าง
การสร้างแพคเกจ
การนำโปรแกรมกลับมาใช้ใหม่คือการสร้างแพคเกจขึ้นมาเพื่อนำไปใช้กับการเขียนโปรแกรมอื่นๆ เราสามารถสร้างแพคเกจได้ดังนี้
โดยปรกติเมื่อเราสร้างโครงงานขึ้นมาโปรแกรม IntelliJ IDEA จะสร้างคลาส Main ขึ้นมาให้เราโดยอัตโนมัติและเรามักจะใช้คลาส Main ในการเขียนโปรแกรมเพื่อทดสอบการใช้งานคลาสของเรา แต่ในการสร้างแพคเกจ
เราต้องเอาคลาส Main ออกไป เพราะว่าโครงงานที่เราจะเอาแพคเกจเราไปใช้จะมีคลาส Main ของตนเองเช่นกัน เราสามารถลบคลาส Main ออกโดยคลิกขวาที่คลาส Main และเลือก Delete จากนั้นกด OK เพื่อยืนยันการลบคลาส Main ตามตัวอย่าง
จากนั้นให้เลือกเมนู FIle > Project Structure ซึ่งจะเปิดหน้าต่างชื่อ Project Structure ขึ้นมา ให้เลือก Artifacts คลิก + และเลือก JAR > From modules with dependencies… JAR ย่อมาจาก Java Archive เป็นเหมือนไฟล์บีบอัดที่เก็บโปรแกรมที่เราเขียนขึ้นมา
จากหน้าต่าง Create JAR from Modules จะแสดงชื่อ Module ตามชื่อโครงงานของเราซึ่งสามารถเปลี่ยนแปลงได้ถ้าต้องการ จากนั้นกดปุ่ม OK
ในกรณีที่เราต้องการให้โปรแกรมสามารถเรียกใช้งานได้ (executable) ในช่อง Main Class เราจะเลือกชื่อคลาสที่มีเมธอด main
ไฟล์ JAR จะถูกสร้างขึ้นภายใต้ไดเร็คทอรี่ตามที่ระบุใน output directory จากหน้าต่างนี้ให้กดปุ่ม OK
จากนั้นให้คลิกเมนู Build > Build Project (ซึ่งจะไม่ปรากฏหน้าจอใดๆ) และเมนู Build > Build Artifact และเลือก Build
และเมื่อเราไปดูที่ไดเร็คทอรี่ดังกล่าวจะพบไฟล์ JAR ดังนี้
การเรียกใช้งานแพคเกจ
ในการใช้งานแพคเกจอื่นเราจะต้องโหลดแพคเกจที่ต้องการเข้ามาในโครง
งานของเราเสียก่อนจึงจะสามารถใช้งานคลาสและอินเตอร์เฟสในแพค
เกจนั้นๆได้ โดยการโหลดแพคเกจสามารถทำได้โดยเมื่อเราสร้างโครงงานขึ้นมาแล้วให้ไปที่เมนู File > Project Structure จากหน้าต่าง Project Structure ให้เลือก Libraries คลิกที่ + และเลือก Java
จากนั้นให้เลือกไฟล์ JAR ที่ต้องการและกดปุ่ม OK
โปรแกรม IntelliJ IDEA จะแจ้งการเพิ่มแพคเกจในโครงงานของเรา ให้กดปุ่ม OK
จากนั้นกดปุ่ม OK ที่หน้าต่าง Project Structure อีกครั้ง
แพคเกจที่ต้องการจะแสดงให้เห็นภายใต้ External Libraries
ตัวอย่างด้านล่างเป็นการทดสอบการใช้งานแพคเกจ จะสังเกตุว่าในโครงงานมีแต่คลาส Main ไม่มีคลาส Car หรือคลาส SportCar ดังตัวอย่างที่ผ่านมาแต่เราสามารถสร้างออบเจคขึ้นมาได้
หากชื่อแพคเกจที่เราใช้เป็นชื่อที่แตกต่างออกไปโปรแกรม IntelliJ IDEA จะเพิ่มประโยคคำสั่ง import ให้เราโดยอัตโนมัติ