Realizarea și execuția unui program Java

De la WikiLabs

Pentru realizarea unui program in Java, sunt necesare două operații: compilarea unui fișer sursă și rularea programului în mașina virtuală. Fișierul sursă, în principiu, se poate scrie în orice editor de text. Pentru Microsoft Windows, o variantă bună este Notepad++. Pentru Linux, în funcție de tipul de interfață, puteți folosi Kate pentru KDE, sau gedit pentru Gnome. În cadrul laboratorului de POO, vom folosi editorul Kate. În laborator, acesta se pornește tastând combinația "Alt + F2", apoi în fereastra care apare tastați kate, apoi tasta enter.

Tutorial pentru lucrul în linia de comandă

Înainte de instrucțiunile de compilare și execuție efective, vom avea nevoie de o introducere în modul de utilizare a consolei în MS Windows și Linux.

MS Windows cmd

În Windows, consola se pornește apăsând combinația "winkey + r", tastând cmd. Ea arată în felul următor:

Consola sistemului de operare Windows

Câteva comenzi utile în linia de comandă:

  • dacă fișierele sursă se află pe altă partiție, cum ar fi D, sau E, comanda care schimbă calea curentă pe partiția D, spre exemplu, este:
c:\Users\Echo> d:
d:\>
  • pentru schimbarea directorului curent, se folosește comanda cd (change directory):
c:\Users\Echo> cd Documents
c:\Users\Echo\Documents> cd work
c:\Users\Echo\Documents\work> cd ..
c:\Users\Echo\Documents>
  • pentru listarea conținutului directorului curent se folosește comanda dir:
C:\Users\Echo\Documents\work\poo> dir
 Volume in drive C has no label.
 Volume Serial Number is 9C96-4AC6

 Directory of C:\Users\Echo\Documents\work\poo

18-Jul-12  10:42    <DIR>          .
18-Jul-12  10:42    <DIR>          ..
18-Jul-12  10:43               117 MainClass.java
               1 File(s)            117 bytes
               2 Dir(s)  22,145,564,672 bytes free

C:\Users\Echo\Documents\work\poo>
  • pentru crearea unui director nou, se folosește comanda md (make directory):
C:\Users\Echo\Documents\work\poo> md test

C:\Users\Echo\Documents\work\poo> dir
 Volume in drive C has no label.
 Volume Serial Number is 9C96-4AC6

 Directory of C:\Users\Echo\Documents\work\poo

18-Jul-12  10:45    <DIR>          .
18-Jul-12  10:45    <DIR>          ..
18-Jul-12  10:43               117 MainClass.java
18-Jul-12  10:45    <DIR>          test
               1 File(s)            117 bytes
               3 Dir(s)  22,145,433,600 bytes free

C:\Users\Echo\Documents\work\poo>

Linux Bash

În Linux, consola se pornește apăsând combinația de taste "Alt + Ctrl + T", sau selectând aplicația Terminal din Applications - Accesories. Aceasta arată în felul următor:

Consola din Linux

Câteva comenzi utile în linia de comandă:

  • pentru aflarea directorului curent, se folosește comanda pwd (print working directory):
student@olympus07:~$ pwd 
/home/student
student@olympus07:~$
  • pentru schimbarea directorului curent, se folosește comanda cd (change directory):
student@olympus07:~$ cd work
student@olympus07:~/work$ pwd 
/home/student/work
student@olympus07:~/work$ cd ..
student@olympus07:~$ pwd 
/home/student
student@olympus07:~$
  • pentru listarea conținutului directorului curent se folosește comanda ls -l (list structure, long listing format):
student@olympus07:~/work/poo$ ls -l
total 4
-rw-rw-r-- 1 student student 110 Jul 18 11:08 MainClass.java
student@olympus07:~/work/poo$
  • pentru crearea unui director nou, se folosește comanda mkdir (make directory):
student@olympus07:~/work/poo$ mkdir test
student@olympus07:~/work/poo$ ls -l
total 8
-rw-rw-r-- 1 student student  110 Jul 18 11:08 MainClass.java
drwxrwxr-x 2 student student 4096 Jul 18 11:10 test
student@olympus07:~/work/poo$

Scrierea, compilarea și execuția unui program Java

Editarea codului sursă

Primul pas în realizarea unui program Java este scrierea efectivă a codului. Pentru asta, folosiți editorul preferat și salvați fișierul cu extensia .java.

Regulă: Întotdeauna, extensia unui fișier care conține un program Java este .java


Regulă: Întotdeauna, numele clasei conținută într-un fișier .java, trebuie să fie identic cu numele fișierului. Ex: Clasa MainClass trebuie salvată într-un fișier cu numele MainClass.java. Atenție: Java este case-sensitive!!!

Pentru exemplu, vom realiza următoarea clasă:

public class MainClass{

public static void main(String[] _args){
    System.out.println("Hello world!");
}

}

Această clasă se salvează într-un fișier cu numele MainClass.java.

Compilarea sursei

În consolă, se navighează folosind comenzile prezentate mai sus până în directorul în care a fost salvat fișierul sursă. Apoi, folosind executabilul javac (Java Compiler), se compilează:

student@olympus07:~/work/poo$ javac MainClass.java
student@olympus07:~/work/poo$ ls -l
total 8
-rw-rw-r-- 1 student student 424 Jul 18 11:22 MainClass.class
-rw-rw-r-- 1 student student 110 Jul 18 11:08 MainClass.java


Regulă: Întotdeauna, compilatorul Java va lua ca argument numele fișierului (cu tot cu extensie) care trebuie compilat.

Dacă execuția compilatorului nu a afișat nici o eroare, atunci compilarea s-a încheiat cu succes și a fost generat fișierul executabil pentru mașina virtuală, cu extensia .class.

Dacă compilatorul nu a putut fi găsit, atunci verificați variabila de sistem PATH, conform instrucțiunilor de instalare pentru JDK.

Dacă compilatorul a afișat erori, citiți-le cu atenție și reparați problemele din codul sursă Java.

Execuția programului în mașina virtuală

În locul unde s-a compilat codul sursă, folosind executabilul java (mașina virtuală), se execută programul:

student@olympus07:~/work/poo$ java MainClass
Hello world!
student@olympus07:~/work/poo$


Regulă: Întotdeauna, mașina virtuală Java va lua ca argument numele clasei (fără extensie) care trebuie executat.


Regulă: O clasă Java nu poate fi rulată în mașina virtuală decât dacă conține metoda main, exact cum este defintă în specificație: public static void main(String[])