Java- Programme und Programmierschnittstellen ( API) bestehen aus Ansammlungen von vielen einzelnen Dateien, die innerhalb der objektorientierten Programmierung jeweils eine Klasse repräsentieren. Um dieser Klassensammlung eine Struktur geben zu können und so die Les- und Benutzbarkeit für Menschen zu verbessern, wurden Java- Packages eingeführt.
Dabei handelt es sich um eine hierarchische Struktur, in der die Klassen (= Dateien) abgelegt werden. Jedes Package hat eine oberste Ebene, in der beliebig viele Klassen und weitere Ebenen liegen können. Für jede untergeordnete Ebene gilt wiederum das gleiche. So entstehen Pakete, die Baumstrukturen abbilden und Klassen sinnvoll adressierbar machen.