Ohjelman suorittaminen

Java-kielinen, käännetty ohjelma suoritetaan komennolla java ohjelma. Aikaisempi esimerkkiohjelma Hei suoritetaan siis komennolla

      java Hei
    

Tällöin ruudulle ilmestyy teksti "Hei kaikille!!!". Esimerkkiohjelman käsky System.out.println("Hei kaikille!!!"); oli siis käsky kirjoittaa ruudulle. Voitkin arvata, että muuttamalla lainausmerkkien sisällä olevaa tekstiä voit kirjoittaa ruudulle ihan mitä haluat. Kokeile ihmeessä!

Muistat, että kääntäessäsi ohjelmaa Java-kääntäjä teki tiedoston Hei.class. Tämä tiedosto on se tiedosto, joka edellisellä käskyllä suoritetaan. Jos tätä class-tiedostoa ei ole, ei ohjelmaa voi suorittaa. Toisaalta suorituksessa ei tarvita alkuperäistä Java-kielistä ohjelmatiedostoa. Jos siis vahingossa kirjoitat suorituskäskyksi java Hei.java saat virheilmoituksen siitä, ettei ohjelmaa voi suorittaa.


Java tarvitsee tulkin

Ihmettelet varmaan, miksi ohjelman suorituskomennossa on ohjelman edessä käsky java. Normaalistihan olet tottunut siihen, että ohjelmat voi komentoriviltä käynnistää suoraan kirjoittamalla ohjelman nimen.

Syy on siinä, että Java-kääntäjän tuottama class-tiedosto ei itse asiassa olekaan sitä kieltä, jota juuri sinun tietokoneesi suoritin ja käyttöjärjestelmä ymmärtävät. Tarvitaan siis tulkki, joka tulkitsee class-tiedostoa sinun tietokoneellesi.

Aikaisemmin ajattelemassamme kakkureseptiesimerkissä voit ajatella, että kääntäjä ei käännäkään kakkureseptiä kiinaksi vaan englanniksi. Tällöin tarvitaan tulkki, joka lukee sitten käännöksen kiinalaiselle kaverillesi kiinaksi. Toisaalta esimerkiksi englantia ymmärtävä ruotsin tulkki voi lukea tuon saman käännöksen ruotsalaiselle kaverillesi ruotsiksi, saksan tulkki saksalaiselle kaverillesi saksaksi jne. Riittää, että tulkit osaavat englantia, koska kääntäjä ensin käänsi kakkureseptisi englanniksi, siis yleiselle kielelle jota kaikki tulkit osaavat!

Java-ohjelman vaiheet

Muissa ohjelmointikielissä, kuin Javassa, käännetään ohjelma suoraan tietokoneen suorittimen ja käyttöjärjestelmän ymmärtämälle kielelle. Sen takia et voi käyttää esim. Linux-ohjelmia Windows:issa ja toisinpäin. Sen sijaan, jos viet Java-ohjelmasi class-tiedoston mihin tahansa tietokoneelle, jossa on Java-tulkki, voit suorittaa ohjelman, oli tietokoneessa sitten mikä tahansa käyttöjärjestelmä tai suoritin. Java- kääntäjän class-tiedosto on siis eräänlaista yleiskieltä (vrt. englanti), jota erilaisiin tietokoneisiin asennetut erilaiset Java-tulkit ymmärtävät ja Java-tulkki sitten antaa käskyt tietokoneen omalla kielellä, käsky kerrallaan (vrt. kakkureseptiesimerkin tulkki lukee kiinalaiselle kaverillesi kiinaksi).