wiki:PakettiEiOleAlihakemisto
Last modified 8 years ago Last modified on 2010-03-02 14:10:29

Tämä on tarkennus Javan pakettien ja hakemistojen välisen suhteen selventämiseksi.

Paketit javassa eivät ole hakemistoja, vaikka tuolla FAQ:ssa niin väitetäänkin Java Language Reference 7.2. Homma lähtee liikkeelle luokista.

Monissa javan toteutuksissa julkisen luokan (public class ... ) tulee olla omassa tiedostossaan. Tämä ei ole javan määrittelyn asettama rajoite, vaan yleinen käytäntö. Javan määrittelyssä sanotaan, että julkisen luokan tulee sijaita käännösyksikössä, ja käännösyksikössä voi olla vain yksi julkinen luokka (tämäkin on yksinkertaistus, katso Java Language Reference 7.6). Yleensä käännösyksikkö on toteutettu tiedostona, jolloin käännösyksikköjen ryhmä, eli paketti, on toteutettu hakemistona.

Muitakin vaihtoehtoja on. Esimerkiksi kurssilla käytetyn Eclipse-kehitysympäristön esikuva VisualAge for Java tallensi java-luokat ja sorsat erilliseen koodivarastoon, ei tiedostojärjestelmään, jolloin tiedostoja ja hakemistoja ei käytetty käännösyksiköiden ja pakettien toteutukseen. Säännöt käännösyksikölle ovat tällöin erilaiset (katso JLR 7.6 edellä).