ALGO25 / BLOG

Primul program Java: JDK, compilare și argumente

Începe să înveți Java: verifică JDK-ul, compilează primul program, folosește argumente și înțelege diferența dintre sursă, compilare și execuție.

Primul obiectiv din parcurs este să poți scrie, compila și rula singur un program Java. Înainte de colecții, frameworkuri sau interviuri, trebuie să distingi fișierul sursă de programul compilat și să poți explica intrarea și ieșirea lui.

Unde te afli în parcurs

Acesta este primul pas din parcursul Java și Spring Boot. Nu presupune cunoștințe Java. Ai nevoie să poți crea un fișier text și să deschizi un terminal într-un director. Folosim JDK 21 pentru toate exemplele de bază; nu este o afirmație că aceasta este cea mai nouă versiune Java.

Un JDK conține instrumentele de dezvoltare, inclusiv compilatorul. Comanda java lansează aplicația, iar javac compilează sursa. Verifică ambele comenzi cu opțiunea -version. Dacă una lipsește sau versiunile nu corespund, rezolvă instalarea înainte să investighezi codul. Un editor de cod nu înlocuiește automat un JDK configurat corect.

Scrie un program complet

Creează un director nou și salvează următorul cod în Main.java. Păstrează majuscula: numele clasei publice și numele fișierului trebuie să corespundă.

public class Main {
    public static void main(String[] args) {
        String name = args.length == 0 ? "cititor" : args[0];
        System.out.println("Salut, " + name + "!");
    }
}

În terminal, din directorul fișierului, rulează:

javac Main.java
java Main
java Main Ana

Prima comandă produce Main.class. A doua afișează Salut, cititor!, iar a treia afișează Salut, Ana!. După fiecare modificare a sursei, compilează din nou în acest flux de lucru. Dacă rulezi o clasă veche, rezultatul poate să nu reflecte fișierul pe care îl citești în editor.

Citește codul de la exterior spre interior

Main este clasa care conține punctul de pornire. Metoda main primește argumentele liniei de comandă într-un array de șiruri. args.length spune câte argumente există. La rularea fără argumente alegem textul cititor; altfel folosim primul argument, args[0].

Expresia cu ? și : alege una dintre două valori. Condiția este verificată înaintea accesului la primul element, deci nu încercăm să citim un element inexistent. String name declară o variabilă care referă un text. println scrie textul și trece la linia următoare.

static permite apelarea metodei de pornire fără crearea prealabilă a unui obiect Main. Nu rezultă că toate metodele dintr-un proiect trebuie să fie statice. Vom introduce obiectele când avem stare și responsabilități pe care vrem să le grupăm.

Înțelege două tipuri de eroare

Dacă omiți un punct și virgulă, compilatorul poate respinge sursa. Atunci programul nou nu a fost construit. Dacă sursa compilează, dar programul încearcă să acceseze un indice inexistent, problema apare în timpul execuției. Citește mesajul și localizează prima linie relevantă din codul tău, nu modifica la întâmplare mai multe lucruri.

Pe calculator pot exista mai multe JDK-uri. Terminalul și IDE-ul pot folosi instalări diferite. O eroare despre versiunea fișierului compilat poate indica această diferență. Notează versiunea cu care ai compilat și versiunea cu care rulezi înainte de a concluziona că algoritmul este greșit.

Exersează

  1. Rulează fără argumente și cu argumentul Mihai. Rezultatele trebuie să difere numai prin numele afișat.
  2. Rulează cu două argumente, Ana Maria. Exemplul afișează numai Ana. Pentru un singur argument care conține spațiu, folosește ghilimele: java Main "Ana Maria".
  3. Înlocuiește salutul, recompilează și verifică noua ieșire. Explică de ce simpla salvare a fișierului nu este suficientă în comenzile de mai sus.

Verifică înainte să continui

Poți continua dacă pornești programul dintr-un director nou fără ajutorul IDE-ului, explici ce conține args și recunoști diferența dintre eroare de compilare și eroare de execuție. Următorul pas este tipuri, condiții, bucle și metode.

Întrebări frecvente

Am nevoie de un IDE anume?

Nu. Un editor text și JDK-ul sunt suficiente pentru acest pas. Un IDE poate ajuta ulterior cu navigarea și depanarea.

De ce fișierul se numește Main.java?

Clasa publică din exemplu se numește Main. Folosim aceeași denumire pentru fișier, respectând majusculele.

Argumentele sunt citite de la tastatură după pornire?

Nu. Sunt valorile transmise în comanda de lansare. Citirea interactivă este o operație separată.

Pot folosi o versiune mai nouă de JDK?

Da, dacă păstrezi compatibilitatea exemplului. Parcursul fixează Java 21 pentru ca verificările să fie reproductibile.

De ce nu începem direct cu Spring Boot?

Fiindcă trebuie să poți separa o problemă Java de una de configurare a frameworkului. Acest program stabilește baza.

Surse

Primii pași Java, dev.java și comanda javac, consultate la 13 octombrie 2026.