JAVA PROGRAMIRANJE

Programski jezik Java nastao je iz programskog jezika Oak. Počev od 1995. godine kada je
u u internet preglednik Netscape Navigator ugrađena podrška za Javu pa sve do danas, jezik
se razvija i širi te je danas praktički sveprisutan.

Pa što je sve danas Java? Termin Java danas se koristi u nekoliko različitih značenja.
• Java kao programski jezik
• Java kao platforma
• Javin virtualni stroj (JVM, engl. Java virtual machine)
• JRE, JDK (SDK)
• Java ekosustav

Programere koji se po prvi puta susreću s programskim jezikom Java često znaju zbuniti dva
pojma: JRE te JDK (ili u ranijim verzijama SDK). Evo o čemu se radi. Programeri programe
pišu zadavanjem izvornog koda u programskom jeziku Java (tekstovne datoteke s ekstenzijom
.java. Izvorni se kod potom prevodi u izvršni kod odnosno bajtkod (datoteke s ekstenzijom
.class). Da bi se izvršni program mogao pokrenuti, potreban je Javin virtualni stroj te skup
biblioteka čije se postojanje garantira svim Java programima. Ovaj postupak prikazan je na
slici 1.1. S obzirom na opisani proces, sada je jasna podjela platforme na dvije komponente.
JRE predstavlja osnovni podskup Java platforme koji korisnicima nudi mogućnost pokretanja
prevedenih programa. JRE se sastoji od implementacije Javinog virtualnog stroja te obaveznih
biblioteka čije se postojanje garantira programima. Ovo je minimum koji će svima omogućiti da
pokreću izvršne Java programe. Uz navedeno, JRE sadrži i implementaciju dodatka za webpreglednike
koji i njima omogućava izvođenje Java programa koje korisnici preuzimaju direktno
s Interneta. Pojam JDK predstavlja nadskup opisane platforme. JDK sadrži sve što je potrebno
kako bi programer mogao prevoditi izvorni kod Java programa u bajtkod te kako bi mogao
izvoditi Java programe. To znači da JDK u sebi uključuje JRE te donosi još i implementaciju
prevodioca i drugih pomoćnih alata. JDK pri tome ne sadrži okolinu za razvoj Java programa
-- pretpostavka je da programeru treba ponuditi samo još mogućnost prevođenja koda. Na
stranicama proizvođača Jave (od nedavno, to je tvrtka Oracle) moguće je pronaći i paket koji
sadrži okolinu za razvoj programa pod nazivom NetBeans. Osim navedene, danas je dostupan
još niz drugih okolina, što besplatnih a što komercijalnih, od čega ćemo svakako preporučiti
okolinu otvorenog koda pod nazivom Eclipse (http://www.eclipse.org/).

Postupak prevođenja i izvođenja Java programa
Pogledajmo sada što se sve događa od izvornog koda pa do Java programa u izvođenju. Slika
1.1 prikazuje najvažnije korake.
Slika 1.1. Od izvornog koda do programa u izvođenju





Prvi korak ovog postupka je pisanje izvornog koda u programskom jeziku Java. Dva su načina
kako može nastati izvorni kod: može ga napisati programer ili izvorni kod može biti strojno
generiran.
• Slučaj u kojem programer piše izvorni kod najčešći je oblik nastanka izvornog koda. Izvorni
kod programa može se pisati u jednostavnim uređivačima teksta (primjerice, koristeći programe
Notepad, Notepad++, UltraEdit i slične na Windowsima, pico, joe, vim, emacs
na Linuxu, višeplatformne uređivače teksta poput alata jEdit (koji je i sam pisan u Javi) te
sličnim alatima na drugim operacijskim sustavima. U slučaju izrade iole kompliciranijih programskih
rješenjapreporučljivo je koristiti okruženja za razvoj programa (engl. IDE - Integrated
Development Environment) koja će uz omogućavanje pisanja jedne ili više datoteka s
izvornim kodom automatski ponuditi i mogućnost upravljanja projektima, automatsko pokretanje
postupka prevođenja, automatsku nadopunu prilikom pisanja izvornog koda te pokretanje
i testiranje napisanog programa. Popis ovakvih alata je relativno velik, a najpoznatija
su okruženja Eclipse te NetNeans.
• Slučaj u kojem se izvorni kod generira automatski rjeđe se susreće prilikom izrade jednostavnih
programa; međutim, prisutan je u situacijama u kojima se za razvoj složenih aplikacija
koriste gotovi razvojni okviri. Takvi razvoji okviri specijalizirani su za razvoj određenih vrsta
aplikacija pa omogućavaju programeru da definira i podesi grube obrise aplikacije, na temelju
čega razvojni okvir automatski generira potreban izvorni kod koji je naknadno moguće po
potrebi još i korigirati.

Jednom kada raspolažemo izvornim kodovima Java programa (namjerno koristimo množinu --
vidjet ćemo kasnije da je loša praksa pisati ogromne monolitne datoteke i da ćemo težiti modularnim
rješenjima), sljedeći korak predstavlja prevođenje izvornog Java koda u bajtkod. U
tu svrhu u okviru instalacije JDK na raspolaganju nam stoji program javac, čije je ime konkatenacija
riječi java te prvog slova engleskog izvornika za jezični procesor: compiler. Program
javac kao ulaz uzima izvorne kodove (te vanjske biblioteke ako ih izvorni kod koristi). Datoteke
s izvornim kodovima programskog jezika Java moraju imati ekstenziju .java. Program potom
generira datoteke s izvršnim kodom za Javin virtualni stroj, odnosno datoteke koje sadrže bajtkod.
Datoteke koje sadrže bajtkod imat će ekstenziju .class.
Uočimo odmah da izvorni kod ne treba nužno biti pisan jezikom Java, kao što prethodna slika i
pokazuje. Primjerice, ako smo program pisali koristeći programski jezik Python, izvorne datoteke
imat će ekstenziju .py. U tom slučaju na računalu bismo morali imati instaliran Jython:
prevodioc koji izvorni kod pisan u jeziku Python prevodi u Javin bajtkod te opet generira datoteke
s ekstenzijom .class. Kako danas za Javin virtualni stroj postoji niz prevodioca, izbor
jezika u kojima možemo pisati relativno je velik.
Jednom kada smo generirali bajtkod, postupak prevođenja (barem što se tiče nas kao programera)
time završava. Bajtkod je izvršni kod za Javin virtualni stroj. Bajtkod je upravo ono što
čini našu aplikaciju i bajtkod se predaje drugim korisnicima i instalira na druga računala (kada
korisnici instaliraju naš program).
Pokretanja Java programa obavlja se uporabom programa java. Taj program zapravo predstavlja
implementaciju virtualnog stroja i sastavni je dio svakog JRE-a. Program java kao ulaz
uzima upravo bajtkod i potom ga izvodi. Ovom programu pri tome nije važno kako je taj bajtkod
nastao -- je li nastao iz Java izvornog koda, iz Python izvornog koda ili nekog trećeg programskog
jezika. Jednom kada imamo generirani bajtkod, imamo sve što je potrebno da bismo
program pokrenuli. Problem različitih platforma pri tome nas kao programere više ne zanima
-- specifičnosti ostvarivanja svih usluga koje Javin virtualni stroj nudi programima problem su
samog virtualnog stroja i riješene su na toj razini. To je upravo i razlog zbog kojeg, da bismo
dobili mogućnost pokretanja Java aplikacija, moramo otići na web-stranicu proizvođača JREa
te skinuti i instalirati Javin virtualni stroj za operacijski sustav koji koristimo. Međutim, kako
je kompletna Java platforma definirana kroz niz specifikacija, danas imamo mogućnost izbora
proizvođača Javinog virtualnog stroja -- to može biti Oracle koji je kupio tvrtku Sun koja je idejni
tvorac Jave ali i ne mora biti -- danas postoje i druge implementacija Javinih virtualnih strojeva
(primjerice, od tvrtke IBM ili od organizacije Apache) kao i alternativne izvedbe prevodioca za
izvorne kodove programa.












Nema komentara:

Objavi komentar

U širem smislu programiranje je procedura, postupak rješavanja nekog problema (problem solving procedure). Rezultat programiranja je program...