I Eclipse samles kode i prosjekter, som enkelt sagt er en mappe med kode og andre filer som hører sammen. Denne siden forklarer litt om hvor sette opp et typisk prosjekt for vanlige Java-programmer, som passer til oppgaver.

Kodingsprosjekter har ulike behov for innhold (java-kode, bilder, ekstra klassebiblioteker osv.) og struktur (mapper for kildekode, tester, ressurser osv). F.eks. vil "vanlige" Java-prosjekter ha en annen struktur og innhold enn web-prosjekter. Heldigvis finnes det både veivisere og egne meny-innslag som hjelper å sette opp prosjekter i henhold til både regler og konvensjoner.

Et vanlig Java-prosjekt kan opprettes ved å bruke File->New->Java Project, fylle ut navnet og ellers akseptere standardoppsettet. En vil da få et prosjekt satt om med standard Java-kompilator, en kildekodemappe med navnet src, og en skjult bin-mappe hvor alle kompilerte filer + kopierte ressurser havner. Dette ser slik ut i Package Explorer-panelet:

Vi ser at src-mappa har et spesielt ikon, et pakkesymbol oppå et mappeikon, for å indikere at det er en kildekodemappe. Det er også en slags mappe med navnet JRE System Library som forteller hvilken Java-versjon vi baserer oss på. Ikonen indikerer at dette er et klassebibliotek og inni mappa vil en finne alle standardklassene i denne Java-versjonen, f.eks. java.lang.String, java.util.List osv. Uten denne vil det være vanskelig å få kompilert koden sin.

Dette oppsettet vil duge for mange formål, men for en del type programmering så trengs flere kildekodemapper, mapper for ressurser og ektra klassebibliotek. F.eks. for å løse JExercise-oppgaver trengs både en tests-kildekodemappe og et ekstra klassebibliotek (jexercise-standalone.jar).

Kildekodemapper

src-mappe brukes til den "vanlige" koden, og det er vanlig å ha ihvertfall en ekstra mappe for testkode kalt tests. Noen ganger samler en såkalte ressurser, dvs. filer som brukes av klassene våre, f.eks. bilder, lyser, konfigurasjonsfiler osv. i en kildekodemappe kalt resources. Alle kildekodemappene blir kompilert som om det var én og resultatet havner i den skjulte bin-mappa.

En ny kildekodemappe opprettes ved å bruke File->New->Source Folder og skrive inn ønsket navn.

Pakker

Når en jobber med større prosjekt eller ønsker å samle mange øvingsoppgaver i samme kodingsprosjekt, så er det greit å fordele koden (Java-klassene) i ulike pakker. Dette er nokså likt hvordan filer fordeles i mapper ellers på maskina. F.eks. kan en ha én pakke for data og én for GUI kalt data og gui eller én pakke pr. øvingsoppgave kalt oving1, oving2 osv (best å unngå særnorske bokstaver). Inni pakkene kan en legge legge java-filer, men også nye pakker, selv om det som regel holder det med ett nivå. Bildet under viser et prosjekt (tdt4100) med en kildekode-mappe (src) med flere pakker (arv, delegation, encapsulation og exceptions). Merk forøvrig forskjellen på ikonet til kildekodemappa og de for pakkene: kildekodemappe-ikonet er som en vanlig mappe som det stikker et pakke-ikon opp fra.

En viktig poeng med pakker er at de også må deklareres inni hver java-fil, over klassedeklarasjonen. Hvis du i kodingsprosjektet har en src-mappe med oving1-pakke i, så må det i java-filene inni oving1-pakke stå package oving1; øverst i fila. I java-filene i encapsulation-pakka over må det tilsvarende være en package-deklarasjon, som følger: package encapsulation; Dersom du kopierer eller flytter filer over i andre pakker for å jobbe videre med dem der, så må du forsikre deg om at package-deklarasjonen justeres tilsvarende. Hvis ikke vil du få en feilmarkering på og i fila. Eclipse justerer forøvrig package-deklarasjonen automatisk når du flytter eller kopierer java-filene i Package Explorer-panelet.

Mappe med ekstra klassebibliotek

I mange prosjekter trenger en ekstra klassebiblioteker, f.eks. test-rammeverk, JExercise, XML-håndtering, grafikk, osv, slik at en slipper å skrive all kode selv. Det er vanlig å legge disse i en egen mappa kalt libs, som er en vanlig mappe. Merk at en strengt tatt godt kan legge klassebiblioteksfiler i selve prosjekt-mappa, men dette blir uryddig om en bruker mange ekstra klassebiblioteker.

En ny vanlig mappe opprettes ved å bruke File->New->Folder og skrive inn ønsket navn. Inni denne legger en så arkiv-filer med Java-klasser, med fil-endelsen jar eller zip. I tillegg, og dette er viktig, må en si fra at de faktisk skal tas i bruk, dvs. tas i betraktning når kildekoden kompileres! Dette gjøres velge Build Path->Add to Build Path i konteksmenyen, som en får frem ved å høyreklikke på fila. Omvendt, dersom en skal la være å bruke klassebiblioteket, så velges Build Path->Remove from Build Path.

Figuren under viser hvordan det ser ut hvis en har lagt til tests-kildekodemappe og en libs-mappe med et klassebibliotek og lagt denne til build path'en.

Vi ser at tests-mappa er riktig registrert som kildekodemappe. libs-mappa har fått et bibliotekstsymbol, som indikerer at den inneholder klassebibliotekstfiler. Disse vil en faktisk ikke finne inne libs-mappe i dette panelet, selv om de egentlig ligger der. I stedet vises disse under overskriften Referenced Libraries. Akkurat dette klassebiblioteket brukes til såkalte JExercise-oppgaver (gå til siden for å laste ned).

 

Ferdig
95

 

 

  • No labels