Boshlovchilar uchun JDK/JRE/JVM, JDK

08.06.2026 | Muallif: Jaxongir a.k.a | Kategoriya: JVM & Performance | 8 daqiqa o'qish

Bu maqolada JDK/JRE/JVM, JDK 17/21 o‘rnatish, IntelliJ IDEA, .java faylni compile/run qilish va classpath asoslari bor.

1. Environment & Tooling

Java dasturlashni o‘rganishda birinchi qadam - kod yozish emas, balki muhitni to‘g‘ri tayyorlash. Chunki Java oddiy .exe fayl kabi to‘g‘ridan-to‘g‘ri ishlamaydi. Java kod avval compile bo‘ladi, keyin JVM ichida ishlaydi.

1.1. JDK, JRE, JVM nima?

Java’da ko‘p uchraydigan 3 ta muhim tushuncha bor:

Atama

To‘liq nomi

Vazifasi

JVM

Java Virtual Machine

Java bytecode’ni ishga tushiradi

JRE

Java Runtime Environment

Java dasturini ishlatish uchun kerakli muhit

JDK

Java Development Kit

Java dastur yozish, compile qilish va ishlatish uchun kerak

Oddiyroq aytganda:

JDK = Dasturchi uchun kerak
JRE = Faqat dasturni ishlatish uchun kerak
JVM = Java kodni kompyuterda ishga tushiradigan virtual mashina

1.2. JVM nima qiladi?

Biz Java’da kod yozasak:

public class Main {
    public static void main(String[] args) {
        System.out.println("Salom Java");
    }
}

Bu kodni kompyuter to‘g‘ridan-to‘g‘ri tushunmaydi. Avval Java compiler uni bytecode ga aylantiradi.

Main.java  →  Main.class  →  JVM ishga tushiradi

Main.java - biz yozgan kod.
Main.class - compiler yaratgan bytecode fayl.
JVM - shu bytecode’ni o‘qib, kompyuterda ishga tushiradi.

Shuning uchun Java’ning mashhur gapi bor:

Write once, run anywhere

Ya’ni bir marta yozilgan Java kod Windows, Linux, macOS’da ishlashi mumkin. Asosiy shart: u yerda JVM bo‘lishi kerak.

1.3. JDK nima uchun kerak?

Agar biz Java dasturchi uchun bizga JDK kerak bo‘ladi. Chunki JDK ichida quyidagilar bor:

javac  → Java compiler
java   → Java dasturni ishga tushirish commandasi
jar    → Java arxiv/package yaratish tool’i
jdb    → debugging tool
JRE/JVM → dasturni ishlatish muhiti

Eng muhim ikkita command:

javac Main.java

Bu .java faylni compile qiladi.

java Main

Bu compile qilingan dasturni ishga tushiradi.

1.4. Qaysi JDK versiyani o‘rnatish kerak?

Hozir amaliyotda eng yaxshi tanlovlardan biri:

JDK 17 yoki JDK 21

JDK 17 - ko‘p enterprise loyihalarda ishlatiladi. Spring Boot loyihalarda juda ko‘p uchraydi.

JDK 21 - zamonaviyroq versiya. Virtual Threads kabi yangi imkoniyatlar bor. Yangi loyiha boshlansa, ko‘pincha JDK 21 yaxshi tanlov.

Boshlovchi uchun tavsiya:

Agar ish / enterprise uchun  → JDK 17
Agar zamonaviy Java o‘rganmoqchi bo‘lsak → JDK 21

Lekin ikkalasi ham yaxshi. Asosiysi, kompyuterda bitta to‘g‘ri JDK o‘rnatilgan bo‘lsin.

1.5. JDK o‘rnatilganini tekshirish

Terminal yoki CMD ochib yozasan:

java -version

Natija taxminan shunaqa chiqadi:

java version "21.0.x"

Yana compiler borligini tekshirish:

javac -version

Natija:

javac 21.0.x

Agar java bor, lekin javac yo‘q bo‘lsa, demak JRE bor, lekin JDK to‘liq o‘rnatilmagan bo‘lishi mumkin.

1.6. IDE nima?

Java kodni oddiy Notepad’da ham yozsa bo‘ladi. Lekin real ishda hech kim bunday qilmaydi. Dasturchilar IDE ishlatadi.

IDE - Integrated Development Environment. Ya’ni kod yozish, run qilish, debug qilish, project boshqarish uchun dastur.

Java uchun eng mashhur IDE:

IntelliJ IDEA

Bundan tashqari Eclipse, NetBeans ham bor. Lekin hozir Java/Spring Boot bozorida IntelliJ IDEA eng qulaylaridan biri.

1.7. IntelliJ IDEA nima beradi?

IntelliJ IDEA quyidagi ishlarni osonlashtiradi:

Kod yozish
Xatolarni ko‘rsatish
Auto-complete
Project yaratish
Run/debug qilish
Maven/Gradle bilan ishlash
Spring Boot loyihalarni boshqarish
Refactoring

Masalan, biz System.out.println yozmoqchi bo‘lsak, IntelliJ ko‘pincha o‘zi taklif beradi.

Yana bir katta foydasi: xatoni oldindan ko‘rsatadi. Kod compile bo‘lmasidan oldin ham qayerda muammo borligini bildiradi.

1.8. Birinchi Java fayl

Java’da eng oddiy dastur shunaqa bo‘ladi:

public class Main {
    public static void main(String[] args) {
        System.out.println("Salom, Java!");
    }
}

Bu yerda:

public class Main

Bu Main nomli class yaratadi.

public static void main(String[] args)

Bu Java dastur boshlanadigan asosiy metod.

System.out.println("Salom, Java!");

Bu ekranga matn chiqaradi.

1.9. Compile va run qilish

Agar fayl nomi Main.java bo‘lsa, terminalda:

javac Main.java

Shundan keyin yangi fayl paydo bo‘ladi:

Main.class

Keyin ishga tushirasan:

java Main

Ekranga chiqadi:

Salom, Java!

Muhim joyi: run qilganda .class yozilmaydi.

Noto‘g‘ri:

java Main.class

To‘g‘ri:

java Main

1.10. Classpath nima?

Classpath - Java class’larni qayerdan qidirishini bildiradi.

Oddiy qilib aytganda, JVM dastur ishlayotganda kerakli .class fayllarni va library’larni topishi kerak. Qayerdan topishini esa classpath orqali biladi.

Masalan:

java -cp out Main

Bu yerda:

-cp out

JVM’ga: "class fayllarni out papkasidan qidir" deyapti.

Classpath ayniqsa quyidagi holatlarda muhim bo‘ladi:

Bir nechta class bilan ishlaganda
Tashqi library ishlatganda
JAR fayllar bilan ishlaganda
Maven/Gradle projectlarda

Boshlanishida classpath murakkab tuyuladi. Lekin asosiy fikr oddiy:

Java ishlashi uchun kerakli class yoki library qayerda joylashganini bilishi kerak.

1.11. JAR fayl nima?

Java’da tayyor dastur yoki library ko‘pincha .jar formatida bo‘ladi.

JAR = Java Archive

Masalan, Spring Boot project build qilinganda bitta .jar fayl chiqadi:

my-app.jar

Uni ishga tushirish:

java -jar my-app.jar

Real backend loyihalarda ko‘p hollarda serverga aynan shu .jar fayl deploy qilinadi.

1.12. Beginner uchun kerakli minimal setup

Java o‘rganishni boshlash uchun bizga shular yetadi:

JDK 17 yoki 21
IntelliJ IDEA Community Edition
Terminal/CMD ishlatishni bilish
java -version tekshirish
javac bilan compile qilishni tushunish

Eng muhim tushuncha:

.java fayl - biz yozgan source code
.class fayl - compile qilingan bytecode
JVM - bytecode’ni ishga tushiradi
JDK - Java dasturchi uchun kerakli to‘liq paket
IDE - kod yozishni osonlashtiradigan muhit

Qisqa xulosa

Java’da dastur yozish jarayoni quyidagicha:

1. JDK o‘rnatiladi
2. IntelliJ IDEA sozlanadi
3. .java fayl yoziladi
4. javac orqali compile bo‘ladi
5. .class fayl hosil bo‘ladi
6. java commandasi bilan JVM ichida ishlaydi