Prva JAVA aplikacija

   Postoje dve kategorije JAVA programa:
       1. Java apleti (applets)
       2. Java aplikacije

  Java apleti su programi ugrađeni u HTML dokumente koji se izvršavaju u lokalnom Web navigatoru. Za njihovo izvršavanje neophodno je da navigator poseduje ugrađene JAVA sposobnosti, ali se mogu pogledati i pomoću alata zvanog appletviewer koji dolazi u okviru  JDK .
  Java aplikacije ne zahtevaju navigator da bi se pokrenuli, a neki Java program može biti aplet ili aplikacija ili jedno i drugo u zavisnosti od funkcionalnosti koja je ugrađena u program.

   Primer 1: Java aplikacija za primer ispisa niske Zdravo, svete na standardni izlaz.

class ZdravoSvete {
     public static void main (String args[])
         {
             System.out.println("Zdravo, svete");
         }
}

Postoje dva suštinska dela ovog programa:
   definicija: kompletan program je zatvoren u definiciju klase koja se ovde zove ZdravoSvete
   telo programa: kao i u C/C++ funkcija main( ) je prva funkcija koja se izvršava po startovanju programa.
  1.  Nakon što je program unet u editor (ma koji editor), izvorna datoteka se čuva sa ekstenzjom .java
  2.   Praksa je da se izvornom kodu daje ime klase koja je u njemu definisana, dakle datoteku nazovite ZdravoSvete.java
  3.  Kompajlirajte datoteku javac kompajlerom, tj. u komandnoj liniji otkucajte
         javac ZdravoSvete.java
  4.  Kompajler će kao izlaz dati fajl istog imena sa ekstenzijom .class (ekstenzija izvršnih Java programa)
  5.  Pokrenite program java interpreterom, tj. u komandnoj liniji otkucajte
        java ZdravoSvete
 
 

Dakle, postoje tri suštinska koraka u stvaranju/izvršavanju programa:
   1. pisanje kôda
   2. kompilacija izvornog kôda
   3. pokretanje kompajliranog kôda

Pod UNIXom kompilacija i izvršavanje izgleda ovako:
 

javac ZdravoSvete.java
java ZdravoSvete
Zdravo, svete

Ako se na računaru Java kompajler (javac), Java interpreter (java) i ostali alati nalaze u direktoriju /nesto/java/bin, onda dodati putanju direktorijuma u $PATH promenljivu:
% export PATH=$PATH:/nesto/java/bin

Pod Windows-om mora se koristiti DOS-shell pri upotrebi JDK:
 

C:> javac ZdravoSvete.java
C:> java ZdravoSvete
Zdravo, svete
C:>

Pri tom se podesi vrednost promenljive PATH tako da sadrži adekvatni direktorijum gde je instaliran jdk, npr . . .;c:\nesto\jdk1.4.0_02\bin\; . . . (definisana u odgovarajućoj liniji datoteke autoexec.bat ili se podesi vrednost putem
Start => Settings => System=> Environment Variables => PATH )

/******Primetite upotrebu .java ekstenzije kod kompajliranja, ali ne i .class ekstenzije kod izvršavanja!!!***********/
 
 

Preporuke pri izradi Java programa

1. Fajlovi koji sadrže izvorni kod nazvati po definisanim klasama unutar fajla, jer kompajler će kao izlaz dati fajl sa ekstenzijom .class i imenom klase koja je u fajlu definisana, te nije zgodno da nazivi datoteka sa izvornim i izvršivim kodom budu različiti.
2. Zgodno je definisati jednu klasu u jednom fajlu, jer  kompajler svaku prevedenu klasu smešta u poseban .class fajl, te je moguće od jedne izvorne datoteke dobiti više .class fajlova što može biti neudobno za celokupnu organizaciju na disku.
3. Java interpreter java  je osetljiv na veličinu slova (case sensirive) u nazivu datoteka.
4. Pri interpretiranju ne kucati ekstenziju .class iza naziva programa, jer zbog interne koncepcije jezika tačka može biti protumačena kao deo puta do izvršive verzije.
 

   Ispis na standardni izlaz

U prethodnoj aplikaciji za ispis poruke Zdravo, svete na standardni izlaz je upotrebljen metod println, tj.              System.out.println("Zdravo, svete");

Za ispis linije koristi se metod println(...) iz klase PrintStream. U našem prvom Java programu
System.out.println() ispisuje sadržaj toka standardnog  izlaza System.out
klase System, u ovom slučaju tekst poruke iza kog sledi separator linije. Zavisno od platforme to moze biti:
carriage return(ASCII 13, \r) i linefeed (ASCII 10, \n) na DOS/Windows
linefeed na UNIX
carriage return na Mac-u

System.err.println(…) ispisuje sadržaj na standardni tok za poruke o grešci System.err.

Moguće je  konkatenirati niske koje su argumenti metode println() pomoću znaka +, npr.
   System.out.println("Ucitano je " + args.length + "argumenata s komandne linije");
gde args.length  predstavlja broj argumenata komandne linije.

Ako se koristi print(…) umesto println(), onda nema znaka za prelaz u novi red nakon ispisa, npr.
          System.out.print("Ucitano je ");
          System.out.print(args.length);
          System.out.print(" argumenata s komandne linije");
          System.out.println();

System.out.println() prekida liniju i pokreće ispis, te se ništa neće ispisati na ekranu
dok god se ne pojavi znak prelaza u novi red.
 

         Klasa ZdravoSvete

Program u Java-i predstavlja klasu. Svaka klasa ima ime koje, po konvenciji, počinje velikim slovom, npr.
                   class ZdravoSvete

Prva linija aplikacije našeg primer glasi
        public static void main (String args[])
Aplikacije u Java-i iamju f-ju main od koje i počinje izvršavanje.
public čini aplikaciju javnom (dostupnom spolja), tj. iz konzole.
  Java program se sastoji iz niza naredbi unutar bloka omeđenog vitičastim zagradama. U našem primeru to je metod println.

     main (String args[])
pod imenom args definiše niz stringova koji su parametri komandne linije. Niz args[] sakuplja sav tekst komandne linije otkucan iza imena programa i kad se pokrene program, onda args[0] sadrži prvi string komandne linije, ..., jer ime klase nije uključeno u listu argumenata.
Argumenti  komandne linije se, dakle, mogu  preneti u program i to kao niz stringova args. Početni indeks svakog niz je nula kao u C/C++. Npr, ako tekst komandne linije glasi
        java stampaj  Zdravo Pero
 onda args[0] je string "Zdravo", args[1] je string "Pero", dok args.length je 2.

Svi argumenti  komandne linije prenose se kao stringovi, nikad kao brojevi. Kasnije će prikazati konverzija stringova u brojeve.

  U Java-i postoje dve klase za rad sa tekstom i njegovo pohranjivanje: String, StringBuffer.

 

Razvijni put aplikacije