ซับแพ็กเกจ (Subpackages) คล้ายกับซับไดเรกทอรี (sub-directories) พิจารณาตัวอย่าง บริษัทมีแพ็กเกจ com.apple.computers ที่มีไฟล์ซอร์ส Dell.java มันจะถูกเก็บในชุดของซับไดเรกทอรีแบบนี้:
....\com\apple\computers\Dell.java
ในขณะคอมไพล์ คอมไพเลอร์สร้างไฟล์เอาต์พุตที่แตกต่างกันสำหรับแต่ละคลาส อินเทอร์เฟซ และการแจกแจงที่กำหนดในมัน ชื่อฐานของไฟล์เอาต์พุตคือชื่อของชนิด และนามสกุลคือ .class
ตัวอย่าง:
// File Name:Dell.java package com.apple.computers; public class Dell { } class Ups { }ตอนนี้ คอมไพล์ไฟล์นี้ดังต่อไปนี้โดยใช้ตัวเลือก -d:
$javac -d.Dell.java
ไฟล์จะถูกคอมไพล์ดังนี้:
.\com\apple\computers\Dell.class .\com\apple\computers\Ups.class
คุณสามารถนำเข้าคลาสหรืออินเทอร์เฟซทั้งหมดที่กำหนดใน \com\apple\computers\ ได้ดังนี้:
import com.apple.computers.*;