แพคเกจคือการรวบรวมคลาสที่เกี่ยวข้องกันทั้งหมดเป็นกลุ่มเดียวกันเพื่อความครบถ้วนในการติดตั้งและใช้งาน โดยในแพคเกจจะประกอบไปด้วยคลาสและอินเตอร์เฟสตามที่ผู้สร้างแพคเกจกำหนด การตั้งชื่อแพคเกจจะใช้อินเตอร์เนตโดเมนเนมของผู้ที่เป็นเจ้าของแพคเกจโดยเขียนย้อนกลับและเป็นตัวอักษรเล็กทั้งหมด เช่น 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 ให้เราโดยอัตโนมัติ