Mala škola Java Web programiranja

Osnove programskog jezika JAVA

Tvorac Jave je James Gosling iz Sun Microsistems-a. JAVA je zamišljena kao jednostavan, platformski nezavistan jezik namenjen pokretanju elektroskih uređaja kao što su interaktivna TV, inteligentne rerne, telefoni i slične naprave. Eksplozijom web-a 1994. godine inžinjeri Sun-a ugrađuju Javu u web browser WebRunner, a početkom 1995. objavljuju izvorni kod i dokumentaciju na internetu. Java postaje sve popularniji programski jezik zbog sledećih svojstava:

Objektna orijentacija -- Java je objektno orijentisani jezik koji podržava sve koncepte OO programiranja. Njena sintaksa nalikuje sintaksi C++ jezika, ali su iz nje izbačeni složeni koncepti C++ za koje se smatralo da zbunjuju programere ili prave probleme.

Prenosivost -- Java izvorni programi se prevode u takozvani bajt kod koji nije mašinski jezik nijednog konkretnog računara, već se izvršava na Java Virtuelnoj Mašini (VM). Java Virtuelna Mašina je virtelni računar koji može biti simuliran na bilo kojem računaru. Time je postignuto da Java programi mogu da se izvršavaju na raznim platformama bez potrebe za prepravljanjem.

Prirodna prilagođenost internetu -- Java programi mogu da se izvršavaju u Web browserima, poseduje sigurnosne mehanizme, njeni delovi koda mogu u realnom vremenu da se distribuiraju i izvršavaju na različitim mašinama, podržava konkurentno programiranje i njene predefinisane klase za korisnički interfejs (API) omogućuju jedinstven izgled i korišćenje aplikacija.
 

      Lista  rezervisanih reči JAVA jezika
 

abstract finally public
assert float return
boolean for short
break goto static
byte if  strictfp
case implements super
catch import switch
char instanceof synchronized
class int this
const interface throw
continue long throws
default native transient
do new true+
double null+ try 
else package void
extends private volatile
false+ protected while
final

+ Preciznije false, null, true su lierali, a ne kljucne reci.
 
Tipovi podataka i operatori

Java je strogo tipiziran jezik jer zahteva da se za svaki podatak u svakom trenutku zna kom tipu pripada. Prilikom deklaracije promenljive obavezno je navesti i njen tip. U Javi postoje dva tipa podatka: prosti tipovi podataka (int,char,byte,long,float,boolean) i složeni tipovi podataka (objekti i nizovi). Svaki od prostih tipova podataka ima tačno definisanu veličinu bez obizira na platformu na kojoj se izvršava Java kod. Detaljne karakteristike prostih tipova podatka date su u sledećoj tabeli:
 
 
 

Prosti tipovi podataka u Javi
Tip podataka
Opis
Default vrednost
Veli-
čina
Minimalna vrednost

 
 
Maksimalna vrednost
boolean
 
Logicki tip podatka sadrži true ili false
False
1 bit
-
-
char
 
Karakter (Unicode)
\u0000
16 bita
\u0000
\uFFFF
byte
 
Ceo broj
0
8 bita
-128
127
short
 
Ceo broj
0
16 bita
-32768
32767
int 
 
Ceo broj
0
32 bita
-2147483648
2147483647
long
 
Ceo broj
0
64 bita
-9223372036854775808
9223372036854775807
float
 
Realan broj sa pokretnim zarezom
0.0
32 bita
+/-1.40239846E-45
+/- 3.40282347E+38
double
 
Realan broj u eksponencijalnom obliku
0.0
64 bita
+/-4.94065645841246544E-324
+/-1.79769313486231570E+308

            Konverzije tipova
 

       OPERACIJA JAVA sintaksa
boolean  u String String s=logprom?"true":"false";
String s=""+logprom;
byte, short, char, int u String String s=Byte.toString(bajtprom);
String s=Short.toString(shortprom);
String s=Integer.toString(intprom);
String s=Integer.toString(broj, osnova);
String s=Integer.toBinaryString(broj);
String s=Integer.toOctalString(broj);
String s=Integer.toHexString(broj);
String s=String.valueOf(broj);
String s=""+broj;
long u String String s=Long.toString(longprom);
String s=Long.toString(longprom, osnova);
String s=Long.toBinaryString(longprom);
String s=Long.toOctalString(longprom);
String s=Long.toHexString(longprom);
String s=String.valueOf(lonfprom);
String s=""+longprom;
float u String String s=Float.toString(pokzarez);
String s=String.valueOf(pokzarez);
String s=""+pokzarez;
double u String String s=Double.toString(doubleprom);
String s=String.valueOf(doubleprom);
String s=""+doubleprom;
String u boolean boolean logprom=Boolean.getBoolean(string);
String u byte byte b= Byte.parseByte(string);
byte b= Byte.parseByte(string, osnova);
String u short short sh= Short.parseShort(string);
short b= Short.parseShort(string, osnova);
String u int int d= Integer.parseInt(string);
int d= Integer.parseInt(string, osnova);
String u long long ld= Long.parseLong(string);
long ld= Long.parseLong(string, osnova);
String u char char c= (char)Integer.parseInt(string);
char c= (char)Integer.parseInt(string, osnova);
String u float float f= Float.parseFloat(string);
String u double double fd= Double.parseDouble(string);

 

String nije primitivan tip podatka u Javi, već je objekat koji pripada klasi String class. Ipak omogućeno je da se string može pojaviti između duplih navodnika (kao u C-u), jer kompajler automatski kreira neophodni String objekat.

U Javi su podržani operatori koji su komplemetarni sa C i C++ operatorima:
 

JAVA operatori
Tip operatora Operator Opis

 
 
 
 

Aritmeticki operatori

 

++
Inkrementiranje (unarni operator)
--
Dekrementiranje (unarni operator)
+
Sabiranje
-
Oduzimanje
*
Množenje
/
Deljenje
%
deljenje po modulu

 
 
 
 

Operatori poredjenja

 

==
Jednakost
!=
Nejednakost
<
Manje od
>
Veće od
<=
Manje ili jednako
>=
Vece ili jednako
Logicki operatori
&&
Logicko I
||
Logicko ukljucujuce ILI
^
Logicko iskljucujuce ILI
!
Negacija
Operatori za rad sa bitovima 
&
Bitsko I 
|
Bitsko   ILI
^
Bitno  iskljucujuce ILI
<<
Pomeranje bitova u levu stranu
>>
Pomeranje bitova u desnu stranu
>>>
Pomeranje bitova u desnu stranu kao da nema znaka
Operatori dodele vrednosti
=
Dodela vrednosti
+=, -=, *=, / =,%= . . .
Dodela vrednosi sa primenom aritmeticke operacije
Operator za String objekate
+
Konkatenacija stringova
Operator objekata
instanceof
Operator za proveru pripadnosti objekta nekoj klasi 

 

Često korišćene konstante u JAVA-i



 
 
 
 
naziv opis
Math.E osnova prirodnog logaritma
Math.PI PI
Float/Double.NEGATIVE_INFINITY negativno beskonacno
Float/Double.POSITIVE_INFINITY pozitivno beskonacno
Float/Double.NaN not a number
Byte/Short/Integer/Long/Float/Double.MAXIMUM_VALUE maksimalna vrednost tipa podataka
Byte/Short/Integer/Long/Float/Double.MINIMUM_VALUE minimalna vrednost tipa podataka

 

Nizovi

Nizovi su način za čuvanje liste elemenata, koji pripadaju istom osnovnom tipu podatka ili klase. Kreiranje niza u Javi podrazumeva sledeće:
    deklaraciju promenljivih niza,
    kreiranje objekata niza,
    smeštanje podataka u niz.
Deklaracija promenljivih niza vrši se navođenjem njegovog tipa i imena, kao u sledećem primeru:
String reci[]; ili  String[] reci;
int brojevi[]; ili int[] brojevi;

 
 

Kreiranje objekata niza može se izvršiti na dva načina:

Primer:
String[] brojevi = new String[5] ;
ili
String[] brojevi = {"0","1","2","3","4"} ;

 
 

Kada se koristi ključna reč new, svi članovi niza inicijalizuju se automatski ( 0 za numeričke nizove , false za boolean , '\0' za karaktere i null  za objekte ). Članovima niza može se pristupiti na sledeći način:
 
 

brojevi[1] = "1" ;
 
 

Višedimenzioni nizovi se deklarišu na sledeći način:
 
 

int[][] brojevi = new int[10][10] ;
 
 

Upravljačke strukture

 

 

U Javi se koriste sledeće upravljacke strukture :

Sintaksa naredbe if/else:
if (izraz ) {
uslovne_naredbe
}
else { // grana nije obavezna
uslovne_naredbe_2

}

if , else - ključne reči

izraz - može biti tačan ili netačan

uslovne_naredbe - izvršavaju se ako je izraz tačan

uslovne_naredbe_2 - izvršavaju se kada je izraznetačan
 
 

Sintaksa naredbe switch :
 
 

switch ( promenljiva ) {

case (vrednost1) :

uslovne_naredbe

break ;

case (vrednost2) :

uslovne_naredbe

break ;

. . .

default :

uslovne_naredbe

}
 
 

Ključne reči ove naredbe su:

switch - identifikuje promenljivu na osnovu koje program odlučuje kuda dalje da krene

case - označava početak svake grane

break - obeležava kraj svake grane

default - putanja kojom program kreće ukoliko promenljiva naredbe switch ne odgovara nijednoj od vrednosti case .
 
 

Promenljiva u naredbi switch mora imati jedan od sledećih tipova podataka char, int, short ili byte.
 
 

Ciklusi (petlje) u Javi su kao i u C - jeziku for , while, i do while.
 
 

Sintaksa for ciklusa:
 
 

for ( inicijalizacija ;izraz ; inkrement )

{

naredbe_petlje

}
 
 

inicijalizacija - postavlja početnu vrednost izraza

izraz - testira se na početku svakog prolaza kroz petlju

inkrement - izvršava se na kraju svakog prolaza kroz petlju.
 
 

Sintaksa naredbe while:
 
 

while ( izraz ) {

naredbe_petlje

}
 
 

izraz - testira se na početku svakog prolaza kroz petlju

naredbe_petlje - izvršavaju se ako je izraz tačan.
 
 

Sintaksa do/while ciklusa:
 
 

do {

naredbe petlje

} while (izraz);
 
 

naredbe petlje - izvršavaju se sigurno jedanput i svaki sledeći za koji je izraz tačan.

izraz - testira se posle prvog a pre svakog novog ulaska u petlju

Sintaksa naredbe try/catch/finally:
 
 

try {

// izvršne_naredbe

}

catch(NekiIzuzetak e) {

// naredbe_za_obradu

}

finally {

// izvršne_naredbe_2;

}
 
 

try -grupa naredbi koja u kojima se može pojaviti izuzetak ili abnormanli prekid (break, continue)

catch --Označava početak obrade izuzetka koji je tipa NekiIzuzetak ili podklase tog tipa

finally -- Naredbe koje se izvršavaju bez obira na to da li je došlo do pojave izuzetka ili je normalno izvršena grupa naredbi u try.
 
 

Klase i objekti

 

 

U Javi je moguće imati više objekata iste vrste koji imaju neke zajedničke osobine. Koristeći tu činjenicu mogu se kreirati šabloni za ovakve objekte. Ovi šabloni zovu se klase. Dakle klasa predstavlja kolekciju podataka i metoda (procedura I funkcija) koje manipulišu sa tim podacima.
 
 

Primer klase Krug:
 
 

public class Krug {
 
 

/* Deklaracija promenljivih */

public double x,y; // kordinate centra

public double r; // poluprecnik kruga

/* Konstruktori */

public Krug(double x, double y, double r) {

this.x = x; this.y = y; this.r = r;

}

public Krug() {(this(0.0, 0.0, 1.0) }
 
 

/* Metode za obim i povrsinu kruga */

public double obim() { return 2 * pi * r; }

public double povrsina() { return pi * r*r; }
 
 

}
 
 

Deklaracija klase vrši se ključnom reči class, kao u sledećem primeru:
 
 

public class Krug {

// telo klase

}
 
 

Telo klase sastoji se iz deklaracije promenljivih, konstruktora i metoda.
 
 

    Modifikatori jezika JAVA
 

MODIFIKATOR OPIS
abstract Za metode i klase. Definicija se mora obezbediti u nekoj NEapstraktnoj klasi. Ne mogu se kreirati instance apstraktne klase.
final Za promenljive, metode, klase. Kod promenljivih vrednost se ne menja. Metode ne mogu biti redefinisane. Za klase se ne kreiraju podklase.
native Za metode. Metod je definisan van Java-e.
none Za metode, klase, inicijalizatore. Vidljivpst iz paketa u kome su deklarisane.
private Za polja, metode, unutar klase. Vidljivost iz svih instanci definisane klase.
protected Za polja, metode, klase. Vidljivost iz paketa u kom su deklarisane i podklasa.
public Za polja, metode, interfejse, klase. Vidljivost svuda.
static Za polja, metode, unutrasnje klase, inicijalizatore. Definicija jednom za sve instance klase.
strictfp Za metode i klase.Skracivanje medjuvrednosti nalik starijim JAVA verzijama.
synchronized Za metode. Dve niti ne mogu simultano da izvrsavaju metod, razlicito zakljucavanje staticnih i nestaticnih metoda.
transient Za polja.Koristi se u kombinaciji sa serijalizacijom za obezbedjivanje istrajnih objekata koji moi biti sacuvani na HD i ponovo postavljeni na drugi disk ili racunar.
volatile Za promenljive.Vrednost se moze menjati nezavisno od Java programa, kompajler ne prati njene promene.

 
 
 
Promenljive
U Java-i postoje tri vrste promenljivih: promenljive klase, promenljive objekata i lokalne promenljive.
 
 

Deklaracija promenljivih sadrži tip ili ime klase, ime koje se koristi za određenu promenljivu i izraz kojim se dodeljuje početna vrednost ( nije obavezan ).
 
 

Većina promenljivih pripada određenom objektu. To znači da svaki objekat koji se zasniva na šablonu klase može da ima različitu vrednost za istu promenljivu.
 
 

int broj ;
 
 

Svi objekti zasnovani na šablonu klase dele jednu kopiju promenljive klase. Promenljive klase deklarišu se ključnom rečju static:
 
 

static int brojac = 1 ;
 
 

Ključna reč final se koristi za definisanje konstante:
 
 

final int MAX = 10; // za objekat

static final float pi = 3.14159; // za klasu
 
 

Lokalne promenljive se koriste unutar metoda gde se i definišu.
 
 

Konstruktori
Klasa sadrži jedan ili više konstruktora koji se razlikuju po broju argumenata. Oni nose informacije o tome koji se podaci iz spoljnjeg sveta moraju obezbediti prilikom inicijalizacije objekta i na koji način se ti podaci koriste. Konstruktori nose isto ime kao i klasa.

 
 

Sintaksa konstruktora:

imeKlase (tip parametar1,tip parametar2,...) {

naredbe ;

}
 
 

Metode
Treći element u definiciji tela klase predstavljaju metode. To su opisi poslova klase. Definicija metode sastoji se od: deklaracije privatnosti (ukoliko je ima), tipa koji metod treba da vrati, imena metode, podataka iz spoljnjeg sveta neophodnih za izvršavanje naredbi i samih naredbi. metode:
public povratniTip imeMetode (tip parametar1 , ...){

naredbe;

}

povratniTip -- tip vrednosti koju metoda vraća ili void ako se ništa ne vraća.

 

Klasa može imati više metoda istog imena, ali se one razlikuju po broju argumenata, redosledu argumenta i/ili tipu podataka argumenta. Mogućnost definisanja metoda istog imena naziva se "overloading". Objekat poziva metodu svoje klase na sledeći način, takozvanom "dot" sintaksom:

imeObjekta.imeMetode(parametri) ;

JAVA manipuliše objektima preko reference, tj. JAVA radi sa referencama objekata. Kada se objekat prosledjuje nekoj metodi samo se prenosi referenca na objekat. Razlika između primitivnih tipova koje se prenose preko vrednosti i objekata i nizova koji se prenose preko reference je veoma bitna:

Pravila privatnosti
Klase, promenljive i metode u Javi mogu imati neki od sledećih nivoa privatnosti:

 
 
public (javno)
svima vidljivo
private (privatno)
nije vidljivo nikom
protected (zaštićeno)
vidljivo prilikom nasleđivanja i svima iz iste datoteke ili paketa
(bez deklaracije)
vidljivo svima iz iste datoteke ili paketa

 
Nasleđivanje
Java dopušta da klasa bude definisana i preko druge klase. Takva klasa se zove podklasa, a roditeljska klasa superklasa. Ovaj mehanizam, kojim se neka klasa izvodi iz druge, naziva se nasleđivanje. U deklaraciji podklase figuriše ključna reč extends kojom se označava koja je klasa roditeljska.

public class Kvadrat extends Pravougaonik

{
//telo klase
}
Klasa može da ima samo jednu superklasu, ali zato svaka klasa može da ima neograničen broj podklasa. Podklase nisu ograničene na promenljive, konstruktore i metode klase koje nasleđuju od svoje roditeljske klase, već mogu dodati i neke druge promenljive i metode ili predefinisati stare metode i konstruktore. Pri tom, jedini zadatak je da se u deklaraciji podklase navedu razlike između nje i njene superklase.

Ukoliko se u subklasi definiše metoda sa istim imenom, povratnom vredšnoću i argumentima kao i metoda superklase tada se ovom metodom prepisuje "overriding" metoda superklase.
 
 

Apstraktne klase i interfejsi
Ponekad je potrebno napraviti klasu koja objedinjuje sve zajedničke karakterisike većeg broja klasa. To se može uraditi kreiranjem apstraktne klase u kojoj su navedene sve metode koje će imati njene podklase, ali nisu definisane (implementirane). Iz tog razloga apstraktna klasa ne može imati svoje objekte. Apstraktna klasa se deklariše upotrebom ključne reči abstract kao u sledećem primeru:
public abstract class GeometrijskiOblik {
      private Color c;
public abstract double obim();

public abstract double povrsina();

public Color dajBoju () {

return c.getForeground() ;

}

...

}

Nekoliko pravila važi za apstraktne metode i apstraktne klase:

Koncept koji omogućava višestruko nasledjivanje u Javi su interfejsi. Sve metode interfejsa su implicitno apstraktne, a kao promenljive mogu se definistati samo statičke konstante.

Primer:

public interface Crtanje { // definicija interfejsa
      public void postaviBoju (Color c);
      public void isrctaj.(DrawWindow prozor);
}
Nakon što se za neku podklasu definise da je nasleđivanje nadklase može se opciono implemetirati  interfejs. Kada se u nekoj klasi definiše da implemetira neki interfejs tada se u njoj moraju implementirati i sve metode interfejsa.

class Krug extends GeometrijskiOblik implemets Crtanje {

   // deklaracija promenljivih
    public double x,y;
    public double r;
// implemetacija nasledjenih apstraktnih metoda

public double obim() { return 2 * pi * r; }

public double povrsina() { return pi * r*r; }
 
 

// implemetacija metoda interfesa

public void postaviBoju (Color c) { this.c = c; }

public void isrctaj(DrawWindow dw) {

... //telo metode

}

}
 
 

Neka podklasa se može implementirati preko više interfejsa čime je omogućeno višestruko nasleđivanje. Za interfejse važe ista pravila nasleđivanja kao i za klase.

Upravljanje memorijom i resursima
Java ne omogućava direktno upravljanje memorijom. S obzirom da je Java jezik nezasan od platforme to je potrebno da Java interpreter omogući alociranje i dealociranje (oslobađanje) memorije. Tehnika koja se koristi naziva se garbage collection. Naime pošto interpreter zna za koje objekte je alocirao memoriju on može da je i oslobodi, ako ni jedan drugi objekat ili promenljiva ne pokazuju (referišu) na njega. Ova tehnika omogućava i detektovanje i i uništavanje zatvorenog kruga kojim se objekti ukazuju jedan na drugi a ne referiše ih neki drugi objekat. Java garbige collector radi kao nit najnižeg prioriteta. Naime to je proces koji radi u background-u i za vreme čekanja sistema na korisnički input (preko tastature ili miša).

Garbage collection automatski oslobađa memoriju koju koristi objekat ali objekat može da drži i druge resurse kao što su soketi, datoteke itd. koje je potrebno osloboditi. Za to se koristi metoda finalize() moja mora biti, ne-statička, bez argumenata i bez povratnih podataka.
 
 

Izuzeci i obrada izuzetaka

Izuzetak je signal koji se pojavljuje prlikom izvšenja programa koji je izašao iz normalnog toka izvršenja instrukcija.  Do pojave izuzetka može doći zbog neke hardverske greške (npr. oštećenja diska) ili zbog jednostavne programske greške (pristup elemetima niza van njegovih granica) ... Kada se bilo koja greška pojavi u okviru Java metode, tada ona kreira objekat koji je izuzetak koji prosleđuje runtime sistemu. Objekat tipa izuzetak sadrži informacije o izuzetku uključujući i tip izuzetka kao i stanje programa kada se greška pojavila. Izuzetak je subklasa java.lang.Exception ili java.lang.Error, koje su podklase java.lang.Throwable klase. Runtime sistem je odgovoran za pronalaženje koda za obradu greške. (U Java terminologiji to se naziva "throwing an exception"). Runtime sistem traži unazad po staku pozvanih metoda da bi našao onu u kojoj je nalazi obrada izuzetka. Ukoliko sistem ne nađe obradu izuzetka prekida se izvršenje programa.

Obrada izuzetaka se ostvaruje preko klauzule try/catch/finally. Sa try se označava grupa naredbi za kojima se obrađuje greška. Iza klauzule try može se nalaziti jedna ili više catch naredbi kojima se obrađuje specifican tip izuzetka. Iza catch klauzule se nalazi finally koja generalno služi za oslobađanje resursa, zatvaranje datoteka itd. Naredbe u klauzuli finally se izvršavaju bez obzira na to da je došlo do pojave greške ili je normalno završena grupa naredbi.

Definisanje izuzetka:

class MojIzuzetak extends Exception {

}

Pokretanje izuzetka:

throw new MojIzuzetak(``tekst greske``);

Paketi

U slučaju da se pišu srodne grupe klasa koje se često koriste, ušteda u prostoru i mnogo fleksibilniji pristup klasama se postiže pravljenjem paketa. Za deklarisanje paketa koristimo ključnu reč package tako što u prvom redu datoteke u koju smeštamo paket navedemo ključnu reč package i ime paketa, kao npr.

package mojPaket ;

Nakon što su klase napisane i spakovane, mogu se pozvati u drugim paketima uz pomoć naredbe import. Naredba import se piše odmah posle naziva paketa a pre bilo koje definicije klase u paketu i može imati dva izgleda:

import paket.klasa; //koriscenje samo konkretne klase

import paket.*; //koriscenje svih klasa iz paketa

Import naredba koja je implicitna (ne mora se navoditi) i koja postoji u svakom Java programu je :

import java.lang.*;

Apleti i aplikacije

Apleti su (obično manji) programi priključeni za Web stranu, dok su aplikacije samostalni Java programi koji se mogu pokrenuti i bez Web čitača i ne podležu ograničenjima koja važe za aplete. Glavna razlika je u main() metodi, koji se koristi za kreiranje objekata, postavljanje promenljivih objekata, kao i pozivanje drugih metoda. Aplikacije poseduju main() metod, dok ga apleti ne poseduju. Umesto njega u apletima se nalazi nekoliko metoda koje se pozivaju u različitim trenutcima izvršavanja jednog apleta.

Signatura main() metode je:

public static void main(String args[])

public - može se pozvati od strane bilo kog objekta

static - znači da je main() metoda klase

void - da ne vraća nikakvu vrednost

String args[ ] - argument komandne linije.

Primer apleta:

import java.applet.*;

import java.awt.*;

public class HelloWorld extends Applet {

Label helloLabel=new Label("Zdravo !");

public void init() {

setBackground(Color.yellow);

add(helloLabel);

}

}

Primer aplikacije:

public class Hello {

public static void main ( String args [] ){

System.out.println("Zdravo !");

}

}

Applet, Label, Color, System - klase koje su već napisane i nalaze se u Java biblioteci ( Java ima velikih broj ovakvih klasa )

setBackground() , add() - metode klase Applet

init() - ovaj metod definiše radnje koje aplet preduzima čim se inicijalizuje.

Program napisan na jeziku Java predstavlja izvorni kod i čuva se u datotekama sa nastavkom .java. Tako bi ova dva programa sačuvali pod nazivom HelloWorld.java i Hello.java.

Kad je izvorni kod gotov predajemo ga računarskom programu - javac (Java prevodilac) koji pravi novu verziju programa ( tzv. bytecod ) i smešta ga u datoteku sa nastavkom .class. Dakle, sa

javac HelloWorld.java

javac Hello.java

formiraju se bajtkodovi: HelloWorld.class i Hello.class.

Za pokretanje aplikacije u komandnoj liniji se navodi komanda java i ime aplikacije. U ovom primeru to bi izgledalo ovako:

java Hello

Nakon toga na ekranu se ispisuje:

Zdravo !

Za pokretanje apleta potrebno je da se aplet priključi na određenu Web stranu koja se čuva sa nastavkom .html. Pretpostavimo da smo naš aplet priključili Web strani sa nazivom HelloWorld.html. Tada aplet možemo pokrenuti na dva načina: pokretanjem Web čitača (time gledamo celu Web stranu) ili unošenjem sledeće komande:

   appletviewer HelloWorld.html