Un package è un meccanismo per organizzare classi Java in gruppi logici, principalmente (ma non solo) allo scopo di definire namespace distinti per diversi contesti. Il package ha lo scopo di riunire classi (o entità analoghe, quali interfacce ed enumerazioni) logicamente correlate. Per esempio, le librerie standard Java sono organizzate in un sistema di package che comprende per esempio elementi strutturali del linguaggio servizi di rete e così via.