In größeren Programmsystemen reichen Klassen als Strukturelemente alleine nicht aus. Oberhalb der Ebene der Klassen ist mit den Paketen (Packages) eine weitere Kollektion für Programmelemente vorgesehen. Pakete sind eine Sammlung von Klassen, die einen gemeinsamen Zweck verfolgen oder aus anderen Gründen zusammengefaßt werden sollen. Jede Methode und jede Variable ist Bestandteil einer Klasse. Jede Klasse ist Bestandteil genau eines Paketes. Der vollständige Name einer Klasse besteht aus paket.klasse oder paket.unterpaket. klasse. Jeder Teil eines mehrstufigen Paketnamens bezeichnet ein Unterverzeichnis, in dem die gewünschte Klassendatei zu finden ist. Beispielsweise befindet sich das Paket java. util.zip im Unterverzeichnis java/util/zip. Die Suche nach Klassen erfolgt relativ zur Umgebungsvariablen CLASSPATH oder in einem systemspezifischen Installationsverzeichnis (z.B. c:\java.1.2\bin bzw. /usr/lib/ java/bin) und zusätzlich im aktuellen Verzeichnis.