Seuraavien harjoitusten tarkoituksena on opettaa ohjelmointiympäristön käyttöä.
Itse Java-kielisten ohjelmien syntaksiin ei vielä ole syytä takertua liiaksi.
Tässä harjoituksessa opittavat asiat tulevat hyödyksi ohjelman koodaamisessa ja
testaamisessa. Itse ohjelman suunnittelun kanssa tällä harjoituksella ei ole
mitään tekemistä!
Java-ohjelmien editointia ja kääntämistä harjoitellaan komentorivillä (mikä tahansa
editori käy, esim. ConTEXT tai Notepad), NetBeans IDE 3.4 -sovelluskehittimellä ja
JBuilder 6 (tai 7) -sovelluskehittimellä. Näistä NetBeans ja JBuilder ovat
vaihtoehtoisia, toinen niistä voidaan jättää pois aikataulun salliessa. Komentoriviosuus
on pakollinen kaikille.
Harjoitellaan aluksi Javan käyttöä komentoriviltä. Kun olet käynyt tehtävän läpi komentorivillä, voit kokeilla samaa NetBeansilla
tai JBuilderilla luettuasi jommankumman editorin käyttöohjeet.
- Aukaise yksi komentoikkuna
tuplanäpäyttämällä CMD-ikonia (Command prompt, sijaitsee työpöydällä tai Start-valikossa).
- Siirry omaan hakemistoosi (hakemiston paikka on C:\MyTemp\ohj\tunnus.
Käytä CD-komentoa hakemistopuussa liikkumiseen). Jos hakemistoa ei ole, luo hakemisto
MD-komennolla.
- Katso DIR-komennolla mitä tiedostoja on hakemistossa.
- Kirjoita jollakin editorilla seuraava Java-ohjelma nimelle Jarj2.java
(esim. ConTEXTilla käynnistyy komennolla ct
Jarj2.java[RET].
Jarj2.java
- Yritä saada vastaavat sisennykset ja ole tarkkana kirjainten
1 (yksi), i (ii, india) ja l (ällä, lima) suhteen.
Myös isojen ja pienten kirjainten kanssa on syytä olla tarkkana!
Jos huomaat mallissa kirjoitusvirheitä, niin älä korjaa niitä vielä.
Tarkoituksena on opetella tulkitsemaan kääntäjän virheilmoituksia.
Mitä luulet ohjelman tulostavan?
- Tallenna valmis ohjelma (useimmissa editoreissa [Ctrl-S]).
- Siirry takaisin komentokehotteeseen ja käännä ohjelma komennolla javac
Jarj2.java[RET].
- Mikäli sait ohjelman kirjoitettua aivan vastaavasti kuin mallissa,
komentokehotteeseen tulee tekstit:
Jarj2.java:40: unclosed string literal
s1 = kysy("Anna 1. merkkijono >');
^
Jarj2.java:41: ')' expected
s2 = kysy("Anna 2. merkkijono >");
^
Jarj2.java:51: ';' expected
System.out.println("Jonot "+s1+", "+s2+".")
^
Jarj2.java:48: cannot resolve symbol
symbol : variable T
location: class Jarj2
s2.append(T);
^
4 errors
- Rivin alussa oleva tieto kuvaa tiedostoa ja rivinumeroa, jossa virhe on löytynyt
(esim. Jarj2.java-tiedostossa rivillä 40 on löydetty
merkkijono, jota ei ole suljettu "-merkillä.
- Monissa tekstieditoreissa on toiminto, jonka avulla pääsee määrätylle
ohjelmariville. Esim. ConTEXTissa [Ctrl-G] (Edit->Go to...) tuo
esiin ikkunan, johon voit syöttää haluamasi rivinumeron. Etsi toiminto tekstieditoristasi ja kokeile sitä.
- Siirry ensimmäisen virheen kohdalle ja paina [RET].
- Korjaa virhe! Virhe ei välttämättä ole kursorin kohdalla,
vaan se vasta paljastuu siinä kohdassa. Sama virhe saattaa
poikia useita eri virheilmoituksia!
- Käännä ohjelma uudelleen.
- Tallenna korjattu ohjelma.
- Siirry takaisin komentokehotteeseen ja aja ohjelma komennolla java
Jarj2[RET]. Jos virtuaalikone ilmoittaa
Exception in thread "main" java.lang.NoClassDefFoundError:
Jarj2,
kokeile komentoa java -cp . Jarj2[RET]
(tämä varmistaa, että virtuaalikone yrittää etsiä ajettavaa tiedostoa nykyisestä
hakemistosta).
Huom. seuraavissa luvuissa esiteltävät sovelluskehittimet voivat helpottaa
huomattavasti ohjelman kehitystä (ne eivät kuitenkaan tee ohjelmaa puolestasi!). Esimerkiksi niiden editorit on suunniteltu tukemaan
Java-kieltä ja debuggerilla ohjelmaa voi suorittaa rivi kerrallaan seuraten
samalla muuttujien arvoja. Lisäksi sovelluksen dokumentaation luonti helpottuu ja
editori osaa tarvittaessa näyttää suoraan Java-kielen ja omien sovellusten
Javadoc-tietoja ohjelmoinnin aikana.
Tästä huolimatta
jokaisen (Java-)ohjelmoijan
on osattava tarvittaessa kääntää ohjelmansa komentoriviltä. Sovelluskehitintä
ei ole aina saatavilla tai käytössä olevan koneen teho ei riitä kehittimen
tehokkaaseen käyttöön (erityisesti Java-kielen sovelluskehittimet vievät hyvin
runsaasti koneen tehoja). Sen sijaan
J2SDK-kehitysympäristö (software development kit) on saatavilla
kaikille Java-kielen tukemille käyttöjärjestelmille ja komennot
java,
javac ja
javadoc toimivat odotetusti.
Java-ohjelmointi onnistuu myös ilman massiivista
sovelluskehitintä. Monet tekstieditorit, kuten ConTEXT (ei kuitenkaan Notepad) tukevat
Javan syntaksin automaattista värikoodaudausta. Kehittyneemmillä editoreilla (esim.
GNU Emacs)
voi määritellä myös omia toimintoja, kuten
javac-komennon kutsuminen editoitavalle tiedostolle...
Tämä luku on vaihtoehtoinen luvun 3 (NetBeans-editorin käyttöohjeita) kanssa.
2.1 Ikkunat
JBuilder -ympäristö on suurinpiirtein seuraavan näköinen:
Näyttö koostuu siis pääikkunasta, joka sisältää useampia ali-ikkunoita. Ikkunan kokoa
voidaan muuttaa hiirellä tarttumalla kiinni ikkunan reunaan, paikkaa tarttumalla ikkunan otsikkopalkkiin.
Ali-ikkunoiden kokoa voidaan muuttaa pääikkunan sisällä tarttumalla ikkunan reunaan.
Hiiren kursori muuttuu kaksipäiseksi nuoleksi, kun olet oikealla kohdalla. Kokeile!
Ikkunasta toiseen voidaan siirtyä joko näpäyttämällä hiirellä ikkunan aluetta tai pikanäppäimellä
[Ctrl-TAB].
Kooditiedostosta toiseen siirrytään klikkaamalla vastaavan välilehden painiketta koodieditorin yläpuolella
tai Window-valikon kautta (
[ALT-W] ja ikkunan numero, johon haluat siirtyä). Koodi-ikkunat on numeroitu 0:sta alkaen
vasemmalta ja näkyvät myös Window-valikossa. Kuvassa
FileInputSream.java on 0. ikkuna,
Jarj3a.java 1. ikkuna jne.
- Avaa haluamasi tiedostot [Ctrl-O]
ja kokeile ikkunasta toiseen siirtymistä.
2.2 Menut ja pikanäppäimet
Toimintoja voidaan valita joko hiirellä yläreunasta, tai
painamalla
[F10]) ja siirtymällä kursorilla halutun toiminnon kohdalle.
Toiminto voidaan valita myös painamalla toiminnon korostetua kirjainta
(esim.
[ALT-E] avaa
Edit-valikon).
Siis vaihtoehtoja on useita. Aluksi menujen käyttö on näppärää nuolinäppäimillä tai hiirellä,
mutta haluttaessa tehokkaampaa toimintaa, kannattaa käyttää suoravalintoja.
Kokeillaan
Jarj2.java-ohjelman korjausta ja ajamista edellisen luvun tapaan.
- Sulje aiemmin avaamasi tiedostot ja mahdollinen JBuilderin oletusprojekti.
(File->Close projects, [ALT-A], [RET],
älä tallenna muutoksia.)
- Aloitetaan uusi projekti ja määritellään asetukset.
- Avaa Project Wizard. (File->New Project)
- Anna projektille haluamasi nimi ja varmista, että hakemistoksi tulee
alkuperäinen työhakemistosi C:\MyTemp\ohj\tunnus
(JBuilder ehdottaa projektin nimistä alihakemistoa, mutta sen voi poistaa).
- Paina Next. Project Wizard siirtyy projektin asetussivulle.
- Tarkista JDK-tekstiriviltä, että kääntämisessä käytetään uusinta
Java-kehitysympäristöä (1.4.1...). Jos ei käytetä,
paina komponentin oikealla puolella olevaa ...-nappia ja lisää esille tulevassa ikkunassa
New-napilla Project-kohtaan JDK 1.4.1 (jos sitä ei vielä ole) . JDK löytyy Agoran koneilta
hakemistosta C:\Program Files\j2sdk1.4.1_01. Valitse ja paina OK-nappia.
- Tarkista, että hakemistot ovat oikein. Output path ja Working directory-kohdissa pitäisi molemmissa olla työhakemistosi
C:/mytemp/tunnus.
- Korjaa lähdekoodihakemisto (ks. ikkunan alaosassa oleva taulukko ja hakemisto, jossa valittu default-radiopainike).
Jbuilder yrittää laittaa lähdekoodeja oletuksena src-nimiseen hakemistoon. Muokkaa hakemistoksi
työhakemistosi (kuten Output path ja Working directory). Valitse hakemisto ja paina
Edit-nappia päästäksesi vaihtamaan hakemiston.
- Huom! Lähdekoodiesi on oltava projektin asetuksissa määritellyssä lähdekoodihakemistossa. Muuten
JBuilderin debuggeri ei toimi oikein.
- Paina Finish. Projekti on luotu.
- Lisää Jarj2.java projektiin. (Project->Add files/packages tai pikanappi heti vasemmalla olevan tiedostopuun yläpuolella)
- Muuta Jarj2.java alkuperäiseen muotoonsa, jolloin voit kokeilla kääntäjän virheilmoituksia JBuilderilla.
-
Jotkut virheet näkyvät jo koodia kirjoittaessasi (jopa ilman kääntämistä!)
vasemmanpuoleisessa ikkunassa Errors-puussa.
- Yritä kääntää ohjelma. ([Ctrl-F9])
-
Virheilmoitukset tulevat ruudun alaosassa olevaan virheikkunaan. Virheikkunan avulla näkee (likimain!)
virheiden paikat ohjelmakoodissa.
Virheitä voi selata JBuilderissa klikkaamalla
hiirellä virheikkunaa ja liikuttamalla nuolinäppäimillä kursoria ylös ja alaspäin virheikkunassa. Kokeile!
-
Käyttäessäsi NetBeansia tai JBuilderia huomaat varmaakin, että värit osoittavat jotakin ohjelmakoodissa.
Mitä? Värit auttavat paikallistamaan useita virheitä.
- Korjaa ja jatka kunnes kaikki virheet on korjattu (kuten komentorivillä aikaisemmin).
- Kokeile ajaa edellisessä luvussa tekemäsi ohjelma neljällä eri tavalla:
Valitse hiirellä menuista Run ja sieltä Run.
-
Paina [F10], liiku kursorilla kohtaan Run. Paina
[RET]. Siirry nuolilla kohtaan Run. Paina [RET].
-
Paina [Alt-R] ja [N].
-
Paina [F9].
-
Mikä edellistä tavoista tuntuu parhaalta?
Pikanäppäimet nopeuttavat ympäristön käyttöä huomattavasti. Edellä on jo mainittu näistä osa.
Täydellisen listan JBuilderin pikanäppäimistä ja niiden käyttötarkoituksesta näet valitsemalla
Tools-valikosta
IDE Options ja painat aukeavan ikkunan
Browser-välilehdeltä kohdassa
Keymap Customize...-painiketta.
Editoriin on siis asetettu valmiiksi useita eri pikanäppäinvaihtoehtoja (vaihtoehdot on tehty muiden editorien pikanäppäinten pohjalta)!
Lisäksi käyttäjä voi halutessaan mukauttaa haluamansa pikanäppäimet uudelleen. Tässä vaiheessa lienee kuitenkin parasta poistua muuttamatta mitään
[ESC] tai paina
Cancel-nappia.
2.3 Kääntäjän ja editorin asetukset
Usein jokin ikkuna saattaa olla jakautunut useisiin ali-ikkunoihin tai välilehtiin
(itse asiassa editorin tiedostot näkyvät oletuksena jokainen omalla välilehdellään). JBuilderin
projektin asetukset saadaan esille painamalla
[ALT-P] ja
[O].
Ikkuna näyttää seuraavalta.
Nyt ali-ikkunoina on otsikoiden alla olevat tekstit (
JDK,
Output path jne).
Ali-ikkunasta toiseen voidaan siirtyä
[Tab] ja
[Shift-Tab] -näppäimillä. Kokeile!
Painikkeita on 2 eri tyyppiä: radionäppäimet (yhtä painamalla muut ponkaisevat ylös, vrt. vanha matkaradio) ja tavalliset painikkeet. Painike voidaan painaa hiirellä tai
painamalla
[Alt-kirjain] tai siirtymällä ko. ali-ikkunaan ja liikkumalla nuolilla ja välilyöntinäppäimellä. Tutki muita
projektin asetusten välilehtiä. Huomaa myös, että voit liikkua puukomponenttien sisällä
nuolinäppäimillä (erityisesti oikea nuoli avaa puun oksan ja vasen nuoli sulkee sen!).
-
Java-kääntäjälle voidaan asettaa
optioita siitä, mistä kääntäjä valittaa. Yleisesti ottaen
kannattaa pitää kaikki mahdolliset virheilmoitukset päällä,
koska varoitus on käytännössä jotakin vikaa ohjelmassa.
-
Varoitukset saat päälle seuraavasti:
- Valitse Project properties-ikkunan Build-välilehti.
- Tarkista, että Show warnings ja Show ddeprecations ovat valittu
(deprections varoittaa kielen vanhentuneiden ominaisuuksien käytöstä).
- Seuraavaksi tutkimme editorin asetuksia. Valitse Tools-valikosta Editor options.
- Merkitse Editor-välilehden Block Indent- ja Tab size- kohtiin sisennyksessä
käyttämäsi välilyöntien määrä (sopiva arvo on 2:n ja 4:n välillä).