This shows you the differences between two versions of the page.
poo-ca-cd:laboratoare:intro [2021/09/01 12:38] ioan_razvan.abagiu |
poo-ca-cd:laboratoare:intro [2025/10/05 13:29] (current) florian_luis.micu [Instalare IntelliJ 2025.2 Community] |
||
---|---|---|---|
Line 1: | Line 1: | ||
- | ===== Laboratorul 0: Introducere ===== | + | ====== Setup Environment: JDK, IntelliJ, Maven, Git ====== |
- | === Instalare Java 17 === | + | * Autori: [[miculuis1@gmail.com | Florian-Luis Micu ]], [[sorinabuf@gmail.com | Sorina-Anamaria Buf ]], [[stefancocioran@gmail.com | Ștefan Cocioran ]] |
+ | * Data publicării: 29.09.2025 | ||
+ | * Data ultimei modificări: 05.10.2025 | ||
- | Pentru POO vom folosi Java 17 și anume OpenJDK 17. | + | |
+ | =====☕ Java===== | ||
+ | |||
+ | ==== Mediul de dezvoltare Java ==== | ||
+ | |||
+ | Java Development Kit (JDK) este pachetul oficial de unelte necesare pentru dezvoltarea aplicațiilor Java. Acesta include: | ||
+ | |||
+ | * compilatorul **javac**, care transformă codul sursă în bytecode. | ||
+ | * **Java Runtime Environment (JRE)**, pentru rularea aplicațiilor. | ||
+ | * biblioteci de bază. | ||
+ | * unelte pentru debugging și monitorizare. | ||
+ | |||
+ | JDK este dezvoltat și întreținut de **Oracle**, dar există și implementări alternative open-source, recunoscute și utilizate pe scară largă în industrie cum ar fi: | ||
+ | * **Azul Zulu**: OpenJDK întreținut de Azul, certificat. | ||
+ | * **Amazon Corretto**: OpenJDK întreținut de Amazon, gratuit și cu patch-uri LTS. | ||
+ | * **Microsoft Build of OpenJDK**: optimizat pentru Azure și Windows. | ||
+ | * **Red Hat OpenJDK**: disponibil gratuit, integrat în ecosistemul Red Hat. | ||
+ | * **SapMachine**: întreținut de SAP. | ||
+ | * **Debian/Ubuntu OpenJDK builds**: build-uri distribuite prin pachetele Linux. | ||
+ | |||
+ | De asemenea, există și implementări enterprise recunoscute pentru optimizări și suport specializat cum ar fi: | ||
+ | * **Oracle JDK**: oficial de la Oracle, gratuit pentru business-uri mici, testare și dezvoltare, dar suportul LTS trebuie plătit. | ||
+ | * **Azul Platform Prime (Zing)**: optimizat pentru performanță și latență scăzută. | ||
+ | * **IBM Semeru Runtimes (cu suport comercial)**: bazat pe Eclipse OpenJ9. | ||
+ | * **Red Hat Build of OpenJDK (cu suport enterprise)**: pentru clienți RHEL/OpenShift. | ||
+ | |||
+ | Versiunile JDK sunt lansate periodic, iar unele sunt desemnate ca LTS (Long-Term Support), ceea ce înseamnă că primesc actualizări și suport pe termen lung, fiind recomandate pentru proiecte stabile. Exemple: | ||
+ | |||
+ | * JDK 8 (2014) | ||
+ | * JDK 11 (2018, LTS) | ||
+ | * JDK 17 (2021, LTS) | ||
+ | * JDK 21 (2023, LTS) | ||
+ | * JDK 25 (2025, LTS) | ||
+ | |||
+ | Pentru POO vom folosi **Java 25** și anume **OpenJDK 25**. | ||
+ | |||
+ | <note tip>Puteți folosi și distribuția de JDK 25 oferită de Oracle pe [[https://www.oracle.com/java/technologies/downloads/|site-ul oficial]]. Pentru instalare urmăriți tutorialul oficial din [[https://docs.oracle.com/en/java/javase/25/install/overview-jdk-installation.html|documentația Oracle]].</note> | ||
+ | |||
+ | ==== Instalare Java 25 ==== | ||
+ | |||
+ | Aveți două opțiuni de instalare: | ||
+ | * **Instalarea JDK-ului manual ca utilitar global pentru sistemul de operare**: Această opțiune vă permite să rulați utilitarele din JDK din orice cale din terminal, dar are un set-up puțin mai lung. | ||
+ | * **Instalarea JDK-ului local mediului de dezvoltare din IntelliJ**: Prin IntelliJ puteți instala rapid o versiune de JDK pentru a porni la lucru, dar JDK-ul instalat va fi accesibil doar din IntelliJ, nu din linia de comandă. | ||
+ | |||
+ | <note important>Dacă aveți un sistem care folosește **dual-boot**, puteți să lucrați atât pe Windows, cât și pe Linux, fără să fie nevoie să ajustați codul. Totuși am observat mai puține probleme la rularea proiectelor Java în Windows pe anumite mașini.</note> | ||
+ | |||
+ | === Instalarea JDK-ului system wide === | ||
Pași de instalare: | Pași de instalare: | ||
- | ==Ubuntu== | + | ==Linux== |
+ | |||
+ | 1. Descărcați arhiva ''tar.gz'' versiunea ''Linux/AArch64'' dacă aveți un procesor **ARM** sau versiunea ''x64'' dacă aveți un procesor **Intel** sau **AMD** de pe site-ul oficial [[https://jdk.java.net/25|OpenJDK 25]] | ||
- | 1. Deschideți un terminal - Ctrl + Alt + T | + | 2. Deschideți un terminal - ''Ctrl + Alt + T'' |
- | 2. Adăugați repository-ul de OpenJDK | + | 3. Rulați comanda de dezarhivare a fișierului: |
<code bash> | <code bash> | ||
- | $ sudo add-apt-repository ppa:openjdk-r/ppa | + | $ cd director_unde_se_afla_arhiva |
+ | $ tar xvf openjdk-25*_bin.tar.gz | ||
</code> | </code> | ||
- | 3. Faceți update la repository | + | 4. În urma operației de mai sus va rezulta un folder **jdk-25**. Acest folder conține toate utilitarele necesare pentru rularea și depanarea proiectelor Java și îl vom muta într-o locație uzuală pentru utilitarele globale pentru sistemele Linux: |
<code bash> | <code bash> | ||
- | $ sudo apt update | + | $ sudo mkdir /usr/lib/jvm/ |
+ | $ sudo mv jdk-25/ /usr/lib/jvm/ | ||
</code> | </code> | ||
- | 4. Instalați OpenJDK 17 | + | <note important>Puteți pune acest folder la altă cale, dar este necesar să introduceți aceeași cale și în pasul următor.</note> |
+ | |||
+ | 5. Acum aveți instalate toate utilitarele Java, doar că ele nu sunt accesibile ușor din terminal, așa că vom crea un link simbolic la calea utilitarelor ca să nu fie nevoie să folosim mereu calea completă către locația directorului **jdk-25**. | ||
+ | |||
+ | 5.1. Deschiderea script-ului de init pentru shell: | ||
<code bash> | <code bash> | ||
- | $ sudo apt install openjdk-17-jdk | + | $ vi ~/.bashrc |
</code> | </code> | ||
- | 5. Instalați și codul sursă pentru Java 17 ce vă va ajuta pe parcursul materiei | + | <note important>Dacă folosiți ''zsh'', înlocuiți comanda de mai sus cu: <code bash>$ vi ~/.zshrc</code></note> |
+ | |||
+ | 5.2. Adăugarea link-urilor simbolice pentru Java: | ||
<code bash> | <code bash> | ||
- | $ sudo apt install openjdk-17-source | + | export JAVA_HOME=/usr/lib/jvm/jdk-25 |
+ | export PATH=$JAVA_HOME/bin:$PATH | ||
</code> | </code> | ||
- | 6. Setați variabila JAVA_HOME | + | <note important>Adăugați cele două linii la finalul fișierului și apoi salvați modificările apăsând ''escape'' după care scrieți '':wq''.</note> |
- | În terminalul deschis: | + | 6. Rulați script-ul de inițializare pentru shell manual: |
<code bash> | <code bash> | ||
- | $ sudo gedit /etc/environment | + | $ source ~/.bashrc |
</code> | </code> | ||
- | La final de fișier adăugați următoarea linie: | + | <note important> |
- | JAVA_HOME=”/usr/lib/jvm/java-17-openjdk-amd64” - path-ul poate să difere | + | * Această comandă trebuie rulată doar de această dată pentru a încărca în memorie variabilele definite anterior. Când o să deschideți sesuni noi în terminal o să se ruleze automat script-ul la inițializare. |
+ | * Dacă folosiți ''zsh'' rulați această comandă: <code bash>$ source ~/.zshrc</code> | ||
+ | </note> | ||
- | {{ :poo-ca-cd:laboratoare:openjdk_env2.png?nolink |}} | + | 7. Verificați dacă totul a fost instalat corect scriind în terminal: |
+ | <code bash> | ||
+ | $ echo $JAVA_HOME | ||
+ | /usr/lib/jvm/jdk-25 | ||
+ | </code> | ||
- | 7. Salvați fișierul apoi închideți-l. În terminalul deschis: | ||
<code bash> | <code bash> | ||
- | $ source /etc/environment | + | $ java --version |
+ | openjdk 25 2025-09-16 | ||
+ | OpenJDK Runtime Environment (build 25+36-3489) | ||
+ | OpenJDK 64-Bit Server VM (build 25+36-3489, mixed mode, sharing) | ||
+ | $ javac --version | ||
+ | javac 25 | ||
</code> | </code> | ||
- | 8. Verificați dacă totul a fost instalat corect scriind în terminal: | + | <note warning> |
+ | * Este important ca output-ul comenzilor să fie corect. Variabila de mediu ''JAVA_HOME'' trebuie să aibă valoarea setată corect și versiunea utilitarelor ''java'' și ''javac'' trebuie să fie **25**. | ||
+ | * Dacă nu am avea un link simbolic ar trebui să scriem în terminal de fiecare dată calea completă către utilitarul ''java'', de exemplu: <code bash>/usr/lib/jvm/jdk-25/bin/java --version</code> | ||
+ | </note> | ||
+ | |||
+ | |||
+ | ==Windows== | ||
+ | |||
+ | 1. Descărcați arhiva oficială ''zip'' și dezarhivați | ||
+ | [[https://jdk.java.net/25/|OpenJDK 25]]. Folderul rezultat din dezarhivare ar trebui să se numească ''openjdk-25_windows-x64_bin'' și înăuntrul lui găsiți un folder ''jdk-25''. Acest folder conține toate utilitarele necesare pentru rularea și depanarea proiectelor Java. | ||
+ | |||
+ | <note tip> | ||
+ | Acum aveți instalate toate utilitarele Java, doar că ele nu sunt accesibile ușor din terminal, așa că vom crea un link simbolic la calea utilitarelor ca să nu fie nevoie să folosim mereu calea completă către locația directorului **jdk-25**. | ||
+ | </note> | ||
+ | |||
+ | 2. În C:/Program Files creați un folder denumit "Java" și mutați folderul ''jdk-25'' înăuntrul folderului creat de voi. | ||
+ | |||
+ | <note important>Deoarece lucrați într-un folder administrat de sistemul de operare va trebui să folosiți drepturi de administrator.</note> | ||
+ | |||
+ | 3. Intrați în folderul ''jdk-25'' și dați click pe address bar iar apoi click dreapta și ''copy'': | ||
+ | |||
+ | {{:poo-ca-cd:laboratoare:java_windows_path.png?nolink&500|}} | ||
+ | |||
+ | 4. Apăsați tasta de ''windows'' și căutați ''Edit the system environment variables'': | ||
+ | |||
+ | {{:poo-ca-cd:laboratoare:java_windows_search.png?nolink&500|}} | ||
+ | |||
+ | 5. Se va deschide o fereastră intitulată ''System Properties'' și apăsați pe butonul ''Environment Variables'': | ||
+ | |||
+ | {{:poo-ca-cd:laboratoare:java_env_vars.png?nolink&400|}} | ||
+ | |||
+ | 6. Din secțiunea ''System variables'' selectați ''New'' și introduceți următoarele detalii: | ||
+ | * nume: ''JAVA_HOME'' | ||
+ | * value: ''C:\Program Files\java\jdk-25\'' - path-ul pe care l-ați copiat | ||
+ | |||
+ | {{:poo-ca-cd:laboratoare:java_windows_javahome.png?nolink&500|}} | ||
+ | |||
+ | |||
+ | 7. Apăsați pe ''Edit'' pe variabila PATH din ''System variables'', apoi dați click pe ''New'' în fereastra nouă care s-a deschis și introduceți path-ul ''%JAVA_HOME%\bin''. | ||
+ | |||
+ | 8. Apăsați tasta ''windows'' -> tastați "terminal" și ''enter'' după care rulați comenzile ''java --version'' și ''javac --version'' pentru a vedea dacă utilitarele s-au instalat corect: | ||
+ | |||
+ | {{:poo-ca-cd:laboratoare:java_windows_install.png?nolink&500|}} | ||
+ | |||
+ | <note warning> | ||
+ | * Este important ca output-ul comenzilor să fie corect. Versiunea utilitarelor ''java'' și ''javac'' trebuie să fie **25**. | ||
+ | * Dacă nu am avea variabila de mediu setată ar trebui să scriem în terminal de fiecare dată calea completă către utilitarul ''java'', de exemplu: <code powershell>> C:\Program Files\java\jdk-25\bin\java --version</code> | ||
+ | </note> | ||
+ | |||
+ | ==macOS== | ||
+ | |||
+ | 1. Instalați ''brew'': | ||
<code bash> | <code bash> | ||
- | $ echo $JAVA_HOME | + | $ /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)" |
- | $ java -version | + | |
</code> | </code> | ||
- | {{ :poo-ca-cd:laboratoare:java_version.png?nolink |}} | + | <note tip> |
+ | ''Brew'' este un utilitar foarte util pentru programatorii care folosesc macOS, deoarece gestionează pachetele instalate fiind foarte similar cu ''apt'' din Linux. Puteți instala JDK-ul și prin alte metode care nu necesită brew, dar vă recomandăm să îl instalați pentru că este foarte probabil să îl mai folosiți și pentru gestionarea altor pachete. Pentru mai multe detalii puteți consulta [[https://formulae.brew.sh/|documentația oficială]]. | ||
+ | </note> | ||
+ | |||
+ | 1. Instalați OpenJDK 25: | ||
+ | <code bash> | ||
+ | $ brew install openjdk@25 | ||
+ | </code> | ||
+ | |||
+ | <note tip> | ||
+ | Acum aveți instalate toate utilitarele Java, doar că ele nu sunt accesibile ușor din terminal, așa că vom crea un link simbolic la calea utilitarelor ca să nu fie nevoie să folosim mereu calea completă către locația directorului **jdk-25**. | ||
+ | </note> | ||
+ | |||
+ | 2. Creați un link simbolic către calea de instalare a JDK-ului: | ||
+ | <code bash> | ||
+ | $ echo 'export PATH="/opt/homebrew/opt/openjdk/bin:$PATH"' >> ~/.bashrc | ||
+ | </code> | ||
<note important> | <note important> | ||
- | Pentru cei care aveți probleme și nu se păstrează valoarea variabilei JAVA_HOME: | + | Dacă folosiți ''zsh'' rulați comanda: <code bash>$ echo 'export PATH="/opt/homebrew/opt/openjdk/bin:$PATH"' >> ~/.zshrc</code> |
+ | </note> | ||
- | Deschideți bashrc: | + | 3. Dați restart la script-ul de inițializare .bashrc: |
+ | <code bash> | ||
+ | $ source ~/.bashrc | ||
+ | </code> | ||
+ | |||
+ | <note important> | ||
+ | Dacă folosiți ''zsh'' rulați comanda: <code bash>$ source ~/.zshrc</code> | ||
+ | </note> | ||
+ | 3. Verificati in terminal finalizarea instalarii ruland comanda: | ||
<code bash> | <code bash> | ||
- | $ sudo gedit ~/.bashrc | + | $ java --version |
+ | openjdk 25 2025-09-16 | ||
+ | OpenJDK Runtime Environment Homebrew (build 25) | ||
+ | OpenJDK 64-Bit Server VM Homebrew (build 25, mixed mode, sharing) | ||
+ | $ javac --version | ||
+ | javac 25 | ||
</code> | </code> | ||
+ | <note warning> | ||
+ | * Este important ca output-ul comenzilor să fie corect. Versiunea utilitarelor ''java'' și ''javac'' trebuie să fie **25**. | ||
+ | * Dacă nu am avea un link simbolic ar trebui să scriem în terminal de fiecare dată calea completă către utilitarul ''java'', de exemplu: <code bash>/opt/homebrew/opt/openjdk/bin/java --version</code> | ||
+ | </note> | ||
- | Adăugați linia la final de fișier: | + | =====📝 IDE-ul IntelliJ===== |
- | source /etc/environment | + | |
- | Salvați și închideți fișierul .bashrc | + | ==== Instalare IntelliJ 2025.2 Community ==== |
- | Astfel, comanda se va efectua la fiecare login al userului automat. | + | ==Ubuntu== |
+ | |||
+ | 1. Deschideți un terminal - ''Ctrl + Alt + T'' | ||
+ | |||
+ | 2. Instalați IntelliJ | ||
+ | <code bash> | ||
+ | $ sudo snap install intellij-idea-community --classic | ||
+ | </code> | ||
+ | |||
+ | |||
+ | ==Windows== | ||
+ | |||
+ | 1. Descărcați executabilul ".exe" Community de [[https://www.jetbrains.com/idea/download/#section=windows|aici]] | ||
+ | |||
+ | 2. Configurați în acest mod următorul meniu pentru a ușura tot flow-ul: | ||
+ | |||
+ | {{:poo-ca-cd:laboratoare:windows_intellij.png?nolink&500|}} | ||
+ | |||
+ | 3. Restart pentru a se face update la variabilele de mediu | ||
+ | |||
+ | ==macOS== | ||
+ | |||
+ | Descărcați imaginea ".dmg" Community de [[https://www.jetbrains.com/idea/download/?section=mac|aici]] (dați scroll mai jos pentru versiunea Community). | ||
+ | |||
+ | <note important> | ||
+ | Dacă aveți procesor M1, M2, M3, M4... selectați versiunea ''Apple Silicon'', altfel alegeți varianta ''Intel''. | ||
</note> | </note> | ||
+ | ==== Instalare IntelliJ IDEA Ultimate Edition ==== | ||
+ | |||
+ | Fiecare student poate beneficia de o licență gratis de IntelliJ IDEA Ultimate Edition prin intermediul contului de mail de la facultate (cel cu domeniul @stud.acs.upb.ro). Versiunea de Ultimate a IDE-ului vine cu foarte multe beneficii care se rezumă principal la feature-uri noi și suport pentru mult mai multe limbaje de programare și tehnologii decât versiunea de Community. Pentru mai multe detalii, consultați pagina: https://www.jetbrains.com/idea/features/editions_comparison_matrix.html | ||
+ | |||
+ | Pentru a folosi licența, pașii sunt următorii: | ||
+ | - Accesați pagina: https://account.jetbrains.com/login unde introduceți adresa de mail cu care vreți să vă înregistrați contul în secțiunea "Create JetBrains Account" și dați click pe butonul de "Sign Up" | ||
+ | - Intrați pe link-ul trimis pe mail și finalizați procesul de creare a contului | ||
+ | - După ce v-ați creat contul și v-ați asigurat că sunteți logați pe site, accesați pagina https://www.jetbrains.com/community/education/#students și la secțiunea "For students and teachers" selectați "Apply now" | ||
+ | - Completați datele cerute de pagina. Este important ca la secțiunea de email să completați mail-ul primit de la facultate, cel cu domeniul menționat mai sus | ||
+ | - După finalizarea procesului, veți primi pe mailul de facultate o confirmare cum că ați primit licența cu succes. | ||
+ | |||
+ | În continuare, pentru a folosi IntelliJ IDEA Ultimate Edition, la pașii descriși mai sus se modifică următoarele: | ||
+ | |||
+ | ==Ubuntu== | ||
+ | În loc de comanda | ||
+ | <code bash> | ||
+ | $ sudo snap install intellij-idea-community --classic | ||
+ | </code> | ||
+ | folosiți comanda | ||
+ | <code bash> | ||
+ | $ sudo snap install intellij-idea-ultimate --classic | ||
+ | </code> | ||
==Windows== | ==Windows== | ||
+ | 1. Descărcați executabilul ".exe" Ultimate de [[https://www.jetbrains.com/idea/download/#section=windows|aici]]. | ||
- | 1. Descărcați arhiva oficială și dezarhivați | + | 2. Configurați în acest mod următorul meniu pentru a ușura tot flow-ul: |
- | [[https://jdk.java.net/17/|java 17]] | + | |
- | 2. În C:/Program Files creați un folder denumit "java" și mutați tot fișierul de OpenJDK înăuntrul fișierului java cu drepturi de administrator | + | {{:poo-ca-cd:laboratoare:windows_intellij.png?nolink&500|}} |
- | 3. Intrați în folderul "bin" din OpenJDK și click dreapta pe address bar iar apoi copy la path | + | ==macOS== |
+ | Descărcați imaginea ".dmg" de Ultimate de [[https://www.jetbrains.com/idea/download/?section=mac|aici]]. | ||
- | {{ :poo-ca-cd:laboratoare:java_windows_path.png?nolink&300 |}} | + | <note important> |
+ | Dacă aveți procesor M1, M2, M3, M4... selectați versiunea ''Apple Silicon'', altfel alegeți varianta ''Intel''. | ||
+ | </note> | ||
+ | ==Final steps== | ||
+ | După instalarea IDE-ului, veți fi nevoiți să vă logați cu contul de IntelliJ IDEA proaspăt creat, după care puteți folosi versiunea Ultimate. | ||
- | 4. Apăsați tasta de windows + E apoi click dreapta pe This PC -> Properties | + | {{:poo-ca-cd:laboratoare:login_page_intellij.png?500|}} |
- | {{ :poo-că-cd:laboratoare:java_windows_properties.png?nolink |}} | + | ==== Cum creezi un proiect nou în IntelliJ? ==== |
+ | 1. Deschide IntelliJ. | ||
- | 5. Jos cu fereastra minimizată sau în dreapta cu fereastra fullscreen -> Advanced System Settings -> Environment Variables | + | 2. Apasă pe butonul ''New Project'' sau mergi la meniul ''File'' -> ''New'' -> ''Project'' dacă IntelliJ s-a deschis deja într-un proiect. |
- | {{ :poo-ca-cd:laboratoare:java_env_vars.png?nolink |}} | + | |
+ | 3. Setează proprietățile proiectului tău: | ||
+ | * selectează proiectul Java | ||
+ | * pune un nume proiectului | ||
+ | * SDK-ul (momentan ''No SDK'', vom vedea în pasul următor cum să selectăm un JDK) | ||
+ | * alege ''build system-ul'' (momentan IntelliJ, ulterior vom folosi Maven) | ||
+ | * bifează ''add sample code'' dacă dorești un cod inițial (momentan vom bifa această opțiune) | ||
- | 6. Selectați Path din secțiunea "System variables" -> Edit | + | 4. Apasă pe ''Create''. |
- | 7. Apăsați New și paste la path-ul pe care l-am copiat anterior -> OK | + | 5. Acum proiectul este creat, iar pentru a adaugă pachete și clase, apasă **click dreapta pe folderul src -> New -> Package/Java Class**. |
- | 8. Selectați Path tot din "System variables" -> New | + | <note important> |
- | * nume: JAVA_HOME | + | În cazul în care vreți să deschideți un proiect deja existent de **IntelliJ**: ''File'' -> ''Open'' și selectați folder-ul care conține folder-ul ''.idea''. |
- | * value: C:\Program Files\java\jdk-17\ - același path anterior dar fară bin | + | </note> |
- | {{ :poo-ca-cd:laboratoare:java_windows_javahome.png?nolink |}} | + | ==== Instalarea JDK-ului prin IntelliJ ==== |
+ | 1. Deschideți IntelliJ | ||
- | 9. Apăsați tasta de Windows + R -> tastați "cmd" și Enter | + | 2. Deschideți un proiect |
- | scrieți "java - -version" pentru a vedea dacă s-a instalat corect. | + | |
- | {{ :poo-ca-cd:laboratoare:java_windows_install.png?nolink |}} | + | 3. Apăsați pe ''File'' -> ''Project structure'' |
+ | 4. Descărcați JDK: | ||
+ | * macOS: ''SDK'' -> ''Add SDK'' -> ''Download JDK'' | ||
+ | * Windows/Linux: ''SDK'' -> ''Download JDK'' | ||
- | === Instalare IntelliJ 2021.2 Community === | + | {{:poo-ca-cd:laboratoare:intellij_sdk_download.png?nolink&700|}} |
- | ==Ubuntu== | + | 5. Selectați versiunea corectă de JDK: |
+ | * Version: **25** | ||
+ | * Vendor: **Oracle OpenJDK** | ||
- | 1. Deschideți un terminal - Ctrl + Alt + T | + | {{:poo-ca-cd:laboratoare:intellij_sdk_download_version.png?nolink&500|}} |
- | 2. Instalați IntelliJ | + | 6. Dați click pe ''Download'' și acum veți avea JDK-ul instalat pentru orice proiect IntelliJ. |
+ | |||
+ | <note warning> | ||
+ | - Dacă proiectul nu merge rulat/compilat așteptați să se facă **indexarea** JDK-ului (aveți un loading bar în dreapta jos). | ||
+ | - Dacă nici după indexare nu sunt rezolvate proiectele, **descărcați** următoarea variantă de JDK: | ||
+ | * Version: **25** | ||
+ | * Vendor: **Azul Zulu Community** | ||
+ | </note> | ||
+ | =====⚙️ Rularea și depanarea unui program Java===== | ||
+ | |||
+ | ==== Cum rulăm cod? Cum facem debug la cod? ==== | ||
+ | |||
+ | 1. Pentru exemplu, vom folosi codul generat de proiect din pasul de **creare a unui proiect**. | ||
+ | |||
+ | 2. Vom apăsa pe unul din butoanele de ''Run'' din interfață (vezi chenarele roșii): | ||
+ | |||
+ | {{:poo-ca-cd:laboratoare:intellij_start_project.png?nolink&750|}} | ||
+ | |||
+ | 3. Pentru a face debug codului putem apăsa pe butonul care seamănă cu un gândac (tradus în engleză "bug"), după ce am pus un breakpoint la o linie cu o instrucțiune de cod (vezi chenarele albastre din poza de mai sus). | ||
+ | |||
+ | 4. După ce porniți o sesiune de debug, vi se va deschide un panou special cu mai multe comenzi: | ||
+ | |||
+ | {{:poo-ca-cd:laboratoare:intellij_debug.png?nolink&750|}} | ||
+ | |||
+ | * Chenarul galben: | ||
+ | * butonul din dreapta vă permite să săriți ușor cu pasul de execuție la următorul breakpoint, deci dacă vă aflați la linia "104" și următorul breakpoint este la linia "150", prin apăsarea butonului veți sări direct la acea linie, totuși aveți grijă ca breakpoint-ul să fie la o linie de cod care se va executa. | ||
+ | * butonul din mijloc oprește sesiunea de debug. | ||
+ | * butonul din stânga restartează sesiunea de debug. | ||
+ | * Chenarul mov: | ||
+ | * se afișează mai multe ''Stack frame-uri'', practic dacă aveți apeluri de metode imbricate puteți apăsa pe oricare Stack Frame și astfel puteți să verificați starea obiectelor Java în momentul apelului unei metode. | ||
+ | * Chenarul roșu: | ||
+ | * se afișează toate variabilele din contextul curent, pentru a verifica variabilele din afara metodei curente folosiți panoul cu Stack Frame-uri. | ||
+ | * Chenarul albastru: | ||
+ | * butonul din stânga ''Step Over'' vă permite să treceți cu debugger-ul la următoarea linie de cod. | ||
+ | * butonul din mijloc ''Step Into'' vă permite să intrați în metoda apelată la linia curentă, altfel dacă folosiți Step Over veți vedea direct rezultatul metodei. | ||
+ | * butonul din dreapta ''Step Out'' vă permite să ieșiți din apelul metodei curente. | ||
+ | |||
+ | <note tip> | ||
+ | * Noțiunile de mai sus pot fi ușor avansate, deoarece nu cunoașteți încă detalii despre programarea în Java, însă puteți reveni oricând la acest laborator pentru a vă familiariza cu procesul de, debug. | ||
+ | * IntelliJ este un IDE, ceea ce înseamnă că are foarte multe utilitare de proofiling și debug care vă pot fi utile. Vă recomandăm să consultați documentația oficilă [[https://www.jetbrains.com/help/idea/debugging-your-first-java-application.html|JetBrains]] , deoarece IntelliJ este un software foarte folosit în industria IT. | ||
+ | </note> | ||
+ | =====💯 Coding Style în Java===== | ||
+ | |||
+ | ==== Comenzi de formatere cod ==== | ||
+ | |||
+ | Toate se găsesc în meniul Refactor (click dreapta pe o secvență de cod) și sunt foarte folositoare atunci când lucrezi la un proiect mai mare, dându-ți o mână de ajutor. | ||
+ | |||
+ | * **Rename** (va face automat modificări în constructori și în metoda main) | ||
+ | * **Replace Code Duplicates** (găsește bucăți de cod care se repetă și creează o metodă nouă pentru ele) | ||
+ | * **Copy Refactoring** (duplică o clasă, dar cu o altă denumire) | ||
+ | * **Move Refactoring** (mută o clasă cu totul în alt pachet) | ||
+ | * **Safe Delete** (șterge ceva ce nu este folosit deloc în proiect, iar daca încerci să ștergi ceva folosit vei primi un mesaj de eroare) | ||
+ | * **Change Signature** (poate schimba numele metodei, parametrii acesteia, tipul, ce returnează, etc.) | ||
+ | |||
+ | |||
+ | |||
+ | ==== Folosire Google Checkstyle în proiecte ==== | ||
+ | |||
+ | Veți folosi convenții de coding style la temă/proiect, dar este bine să le utilizați oricând scrieți cod, inclusiv la laborator. | ||
+ | |||
+ | |||
+ | Consultați tutorialul de [[https://ocw.cs.pub.ro/courses/poo-ca-cd/laboratoare/tutorial-checkstyle|aici]] | ||
+ | |||
+ | =====🛠️ Maven===== | ||
+ | |||
+ | ==== Instalare Maven ==== | ||
+ | |||
+ | Maven este folosit pentru gestionarea dependințelor și pentru facilitarea proceselor de ''build'' în proiectele Java. În următorul laborator veți învăța mai multe despre acesta. | ||
+ | |||
+ | <note important> | ||
+ | * Maven vine instalat cu IntelliJ, dar nu poate fi folosit în linia de comandă. Pentru a rula comenzi din linia de comandă trebuie să instalăm și să creăm un link simbolic pentru Maven. | ||
+ | * Versiunea de Maven instalată nu este importantă, deoarece pentru toate cele trei sisteme de operare vom folosi un **package manager** care va alege o versiune destul de nouă și compatibilă cu proiectele noastre. | ||
+ | </note> | ||
+ | |||
+ | === Linux === | ||
+ | |||
+ | 1. Deschideți terminalul folosind ''CTRL'' + ''ALT'' + ''T''. | ||
+ | |||
+ | 2. Actualizați distro-ul: | ||
<code bash> | <code bash> | ||
- | $ sudo snap install intellij-idea-community --classic | + | $ sudo apt-get update |
</code> | </code> | ||
+ | 3. Instalați Maven: | ||
+ | <code bash> | ||
+ | $ sudo apt install maven | ||
+ | </code> | ||
- | ==Windows== | + | 4. Testați comanda ''mvn'': |
+ | <code bash> | ||
+ | $ mvn -v | ||
+ | Apache Maven 3.8.7 | ||
+ | Maven home: /usr/share/maven | ||
+ | Java version: 25, vendor: Oracle Corporation, runtime: /usr/lib/jvm/jdk-25 | ||
+ | Default locale: en, platform encoding: UTF-8 | ||
+ | OS name: "linux", version: "5.15.167.4-microsoft-standard-wsl2", arch: "amd64", family: "unix" | ||
+ | </code> | ||
- | 1. Descărcați ".exe" de Community de [[https://www.jetbrains.com/idea/download/#section=windows|aici]] | ||
- | 2. Configurați în acest mod următorul meniu pentru a ușura tot flow-ul | + | === Windows === |
- | {{ :poo-ca-cd:laboratoare:windows_intellij.png?nolink |}} | + | 1. Apăsați tasta ''windows'' -> căutați ''terminal'' -> click dreapta ''Run as administrator''. |
- | 3. Restart pentru a se face update la variabilele de mediu | + | 2. Instalați managerul de pachete ''Chocolatey'': |
- | === Folosire Google Checkstyle în proiecte === | + | 2.1. Verificați că sistemul de operare nu este în modul ''restricted'': |
+ | <code powershell> | ||
+ | > Get-ExecutionPolicy | ||
+ | RemoteSigned | ||
+ | </code> | ||
- | Coding style-ul abordat de cei de la Google va fi folosit pentru temă/proiect, dar este o practică bună să îl folosiți mereu când scrieți cod. | + | <note warning> |
+ | * Dacă rezultatul comenzii de mai sus este ''Restricted'', rulați următoarea comandă: <code powershell>> Set-ExecutionPolicy AllSigned</code> | ||
+ | * Modul ''restricted'' din Windows împiedică rularea anumitor script-uri pentru a vă proteja de atacuri cibernetice, însă pentru programatori accesul la sistem este necesar și atunci trebuie scoasă această restricție. Totuși, după ce rulați comanda de mai sus, **aveți grijă să nu rulați comenzi care pot fi malițioase**, deoarece sistemul vostru nu mai folosește un mecanism de securitate! | ||
+ | </note> | ||
- | 1. Din IntelliJ fară proiect deschis, intrați la plugins și căutați pluginul CheckStyle-IDEA. | + | 2.2. Instalați utilitarul: |
+ | <code powershell> | ||
+ | > Set-ExecutionPolicy Bypass -Scope Process -Force; [System.Net.ServicePointManager]::SecurityProtocol = [System.Net.ServicePointManager]::SecurityProtocol -bor 3072; iex ((New-Object System.Net.WebClient).DownloadString('https://community.chocolatey.org/install.ps1')) | ||
+ | RemoteSigned | ||
+ | </code> | ||
- | Dacă aveți deschis deja un proiect deschis, Ctrl + Alt + S pentru Settings, iar apoi Plugins. | + | 3. Instalați Maven: |
+ | <code powershell> | ||
+ | > choco install maven | ||
+ | </code> | ||
- | 2. Descărcați setul de reguli de coding style de la Google de [[https://drive.google.com/file/d/1Bt_FpMcLrcZnDmlfnSEdmsee6e1CvSf4/view?usp=sharing|aici]] | + | 4. Testați comanda ''mvn'': |
+ | <code powershell> | ||
+ | > mvn -v | ||
+ | Apache Maven 3.9.11 (3e54c93a704957b63ee3494413a2b544fd3d825b) | ||
+ | Maven home: C:\ProgramData\chocolatey\lib\maven\apache-maven-3.9.11 | ||
+ | Java version: 25.0.1, vendor: Oracle Corporation, runtime: C:\Program Files\Java\jdk-25 | ||
+ | Default locale: en_US, platform encoding: UTF-8 | ||
+ | OS name: "windows 11", version: "10.0", arch: "amd64", family: "windows" | ||
+ | </code> | ||
- | 3. Deschideți settings și căutați "Checkstyle" care apare în submeniul de la Tools | + | <note tip> |
- | Apăsați pe "+", selectați fișierul descărcat, puneți o descriere sugestiva - exemplu: Google Code Style și dați Next până la Finish | + | Similar cu ''apt'' din Linux și ''brew'' din macOS, ''Chocolatey'' este un **packet manager** care vă poate ajuta cu instalarea utilitarelor pe Windows. Este relevant de știut că acesta are o licență open-source limitată, dar există și versiuni business plătite. Pentru mai multe detalii consultați [[https://chocolatey.org/|documentația oficială]]. |
+ | </note> | ||
- | {{ :poo-ca-cd:laboratoare:init_google_codestyle.png?nolink |}} | + | === macOS === |
+ | |||
+ | 1. Folosiți utilitarul ''brew'' instalat în pașii de mai sus pentru a instala Maven: | ||
+ | <code bash> | ||
+ | $ brew install maven | ||
+ | </code> | ||
+ | |||
+ | 2. Testați comanda ''mvn'': | ||
+ | <code bash> | ||
+ | $ mvn -v | ||
+ | Apache Maven 3.9.11 (3e54c93a704957b63ee3494413a2b544fd3d825b) | ||
+ | Maven home: /opt/homebrew/Cellar/maven/3.9.11/libexec | ||
+ | Java version: 25, vendor: Homebrew, runtime: /opt/homebrew/Cellar/openjdk/25/libexec/openjdk.jdk/Contents/Home | ||
+ | Default locale: en_US, platform encoding: UTF-8 | ||
+ | OS name: "mac os x", version: "26.0", arch: "aarch64", family: "mac" | ||
+ | </code> | ||
+ | =====🐙 Git===== | ||
+ | |||
+ | ====Instalare și tutorial pentru Git==== | ||
+ | |||
+ | Git este un tool de versionare a codului care este folosit de orice programator pentru a facilita procesul de review, back-up și versionare. | ||
+ | |||
+ | Vă recomandăm să citiți tutorialul exhaustiv de [[poo-ca-cd:resurse-utile:tutorial-git|aici]]. | ||
+ | |||
+ | <note tip> | ||
+ | * Nu încurcați GitHub cu ''git''. GitHub, BitBucket, GitLab sunt interfețe web peste tool-ul ''git''. | ||
+ | * Nu este obligatoriu să folosiți direct ''git'', există tool-uri grafice care vă pot ușura munca dacă preferați interfețele grafice: | ||
+ | * **IntelliJ** are suport integrat pentru ''git'' dintr-un panou dedicat. Pentru detalii consultați documentația de [[https://www.jetbrains.com/help/idea/using-git-integration.html|aici]] după ce ați terminat de parcurs ghidul de mai sus despre ''git''. | ||
+ | * GitHub vă pune la dispoziție aplicația **GitHub Desktop** pentru Windows și macOS. Pentru detalii consultați documentația de [[https://desktop.github.com/download/|aici]] după ce ați terminat de parcurs ghidul de mai sus despre ''git''. | ||
+ | </note> | ||
+ | |||
+ | <note warning> | ||
+ | Vă rugăm să parcurgeți cu atenție tutorialul de mai sus, deoarece va trebui să folosiți ''git'' la teme. | ||
+ | </note> | ||
- | 4. Bifați căsuța din stânga lui pentru a îl face activ | ||
- | Într-un proiect de Java care nu respectă coding style-ul de la Google, warning-urile vor apărea în submeniul Problems, iar plugin-ul va face și highlight la liniile unde apar acele warning-uri. | ||