2-bo‘lim
Muhitni sozlash va birinchi loyiha
JDK o'rnatish, javac va java buyruqlari, JAVA_HOME, IDE tanlash, paketlar, jar fayllari va Maven bilan tanishuv.
Ushbu bo‘lim mundarijasi
Java yozish uchun JDK va matn muharriri kerak. Ikkalasi ham bepul.
JDK nima #
| Qisqartma | To'liq nomi | Nima uchun |
|---|---|---|
| JDK | Java Development Kit | Dastur yozish uchun - kompilyator bor |
| JRE | Java Runtime Environment | Faqat ishga tushirish uchun |
| JVM | Java Virtual Machine | Bayt-kodni bajaradigan qism |
Sizga JDK kerak. Uning ichida JRE ham, JVM ham bor.
Java'ning bir nechta bepul tarqatmasi bor va ular texnik jihatdan deyarli bir xil:
| Tarqatma | Kim chiqaradi | Izoh |
|---|---|---|
| Eclipse Temurin | Adoptium jamg'armasi | Eng ko'p tavsiya etiladigani, bepul |
| Oracle JDK | Oracle | Rasmiy, litsenziya shartlariga e'tibor bering |
| Amazon Corretto | Amazon | Uzoq qo'llab-quvvatlash |
| Microsoft Build of OpenJDK | Microsoft | Windows uchun qulay |
Ikkilansangiz - Temurin 21 LTS ni oling: adoptium.net.
O'rnatish va tekshirish #
O'rnatgandan keyin terminalda ikkita buyruqni bajaring:
java -version
javac -version
Ikkalasi ham versiya raqamini chiqarishi kerak, masalan:
openjdk version "21.0.10" 2026-01-20
javac 21.0.10
java ishlaydi, javac esa yo'qBu eng ko'p uchraydigan holat. Sababi: siz JRE o'rnatgansiz, JDK emas. JRE da kompilyator yo'q.
Ikkinchi sabab - PATH da eski Java turibdi. Buni tekshirish uchun:
where java
Linux va macOS'da which java. Agar bir nechta yo'l chiqsa,
birinchisi ishlatiladi.
JAVA_HOME #
Ko'p vosita (Maven, Gradle, IDE) JAVA_HOME muhit o'zgaruvchisini
qidiradi. U JDK o'rnatilgan papkaga ishora qilishi kerak -
bin papkasiga emas.
| Tizim | Qanday o'rnatiladi |
|---|---|
| Windows | Sozlamalar → Muhit o'zgaruvchilari → Yangi: JAVA_HOME |
| Linux / macOS | ~/.bashrc yoki ~/.zshrc ga export JAVA_HOME=... |
Birinchi dastur #
Papka yarating va Salom.java faylini yozing:
public class Salom {
public static void main(String[] args) {
System.out.println("Birinchi dasturim ishladi");
}
}
Birinchi dasturim ishladi
Terminalda:
javac Salom.java
java Salom
Nima bo'ldi:
javac Salom.java- kodni bayt-kodga o'girdi vaSalom.classfaylini yaratdi;java Salom- JVM ni ishga tushirib,Salom.classni bajardi.
java Salom - kengaytmasizDiqqat qiling: ikkinchi buyruqda .class yozilmaydi. java buyrug'i
sinf nomini kutadi, fayl nomini emas.
java Salom.class deb yozsangiz xato beradi. Bu boshlovchilarning
tez-tez uchraydigan xatosi.
Bir buyruq bilan ishga tushirish #
Java 11 dan boshlab kichik dasturlarni kompilyatsiya qilmasdan ishga tushirish mumkin:
java Salom.java
Bu yerda .java yoziladi. JVM kodni xotirada kompilyatsiya qilib,
darhol bajaradi. Bitta fayldan iborat mashqlar uchun juda qulay.
Argumentlar #
public class Argumentlar {
public static void main(String[] args) {
if (args.length == 0) {
System.out.println("Argument berilmadi");
} else {
System.out.println("Argumentlar soni: " + args.length);
for (String arg : args) {
System.out.println(" - " + arg);
}
}
}
}
Argument berilmadi
Yuqoridagi natija argumentsiz ishga tushirilganda chiqadi. Argument bersangiz:
java Argumentlar Husanboy Namangan
Natija shunday bo'ladi:
Argumentlar soni: 2
- Husanboy
- Namangan
Muharrir tanlash #
| Vosita | Izoh |
|---|---|
| IntelliJ IDEA Community | Bepul, Java uchun eng qulay - tavsiya etiladi |
| VS Code + Extension Pack for Java | Yengil, bepul |
| Eclipse | Bepul, uzoq tarixga ega |
| Oddiy matn muharriri | javac va java baribir ishlaydi |
Java'da IDE boshqa tillardagidan ham foydaliroq, chunki u:
- xatoni yozayotganda ko'rsatadi, kompilyatsiyadan oldin;
- import'larni o'zi qo'shadi;
- sinf va metod nomlarini avtomatik to'ldiradi;
- qayta nomlashni butun loyiha bo'ylab xavfsiz bajaradi.
Boshida javac va java ni qo'lda ishlatib ko'ring - nima sodir
bo'layotganini tushunish uchun. Keyin IDE'ga o'ting.
Paketlar #
Katta loyihada sinflar paketlarga ajratiladi. Paket - bu papka va nom fazosi birgalikda.
package uz.softromeda.jurnal;
public class Talaba {
// ...
}
Bu fayl uz/softromeda/jurnal/Talaba.java yo'lida turishi kerak -
paket nomi papka tuzilmasiga aynan mos bo'lishi shart.
| Qoida | Misol |
|---|---|
| Kichik harflar bilan | uz.softromeda.jurnal |
| Teskari domen nomi | com.example.loyiha |
| Papka tuzilmasiga mos | com/example/loyiha/ |
Paket nomlari butun dunyo bo'ylab noyob bo'lishi kerak - aks holda ikki xil kutubxonada bir xil nomli sinf bo'lsa, to'qnashuv yuz beradi.
Domen nomlari allaqachon noyob, shuning uchun ularni teskari yozish
qabul qilingan: softromeda.uz → uz.softromeda.
Shaxsiy loyihalarda domen shart emas, lekin tuzilma bir xil bo'lsin.
Loyiha tuzilmasi #
Amalda qabul qilingan tartib:
jurnal/
src/
main/
java/
uz/softromeda/jurnal/
Main.java
Talaba.java
test/
java/
target/ <- qurilgan fayllar (Git'ga qo'shilmaydi)
pom.xml <- Maven sozlamalari
Maven bilan tanishuv #
Loyiha o'sganda javac ni qo'lda chaqirish noqulay bo'ladi:
kutubxonalar, testlar, versiyalar kerak. Buning uchun qurish
vositasi ishlatiladi.
| Vosita | Sozlama fayli | Izoh |
|---|---|---|
| Maven | pom.xml (XML) | Eng keng tarqalgan |
| Gradle | build.gradle | Moslashuvchan, Android'da standart |
Maven buyruqlari:
mvn compile
mvn test
mvn package
mvn package natijasida target papkasida jar fayli paydo
bo'ladi - bu butun dasturingiz bitta arxivda.
.jar - bu aslida oddiy ZIP arxiv. Uni arxivator bilan ochib
ko'rish mumkin: ichida .class fayllari va META-INF papkasi
bo'ladi.
Tayyor jar'ni shunday ishga tushiriladi:
java -jar jurnal.jar
Bu Java dasturlarini tarqatishning standart usuli: bitta fayl, har qanday tizimda ishlaydi.
Ko'p uchraydigan xatolar #
| Xato | Sababi |
|---|---|
javac: command not found | JDK o'rnatilmagan yoki PATH da yo'q |
class X is public, should be declared in a file named X.java | Fayl nomi sinf nomiga mos emas |
Could not find or load main class | java X.class deb yozilgan yoki noto'g'ri papkadasiz |
error: cannot find symbol | Nom xato yozilgan yoki import yetishmayapti |
Unsupported class file major version | Kod yangi Java'da qurilgan, eski JVM'da ishga tushirilyapti |
Unsupported class file major version 69 kabi xabar - bu versiya
mos kelmasligi.
Sabab: javac bilan Java 25 da qurgansiz, lekin java buyrug'i
Java 21 ni ochyapti. Ya'ni kompyuterda ikkita Java bor.
Tekshirish: java -version va javac -version bir xil raqam
berishi kerak. Bermasa - PATH va JAVA_HOME ni to'g'rilang.
Eski JVM uchun ataylab qurish kerak bo'lsa:
javac --release 21 Salom.java
Bu darslikdagi barcha misollar aynan shu bayroq bilan tekshirilgan.
- JDK o'rnating va
java -version,javac -versionbilan tekshiring. - JDK, JRE va JVM farqini o'z so'zingiz bilan yozing.
JAVA_HOMEo'zgaruvchisini o'rnating.Salom.javayozib,javacvajavabilan ishga tushiring.- Fayl nomini ataylab noto'g'ri qo'yib, xatoni ko'ring.
java Salom.javabilan bir buyruqda ishga tushiring.- Dasturga ikkita argument uzating.
- IntelliJ IDEA Community yoki VS Code o'rnating.
- Paket e'lon qilib, mos papka tuzilmasini yarating.
.jarfaylining aslida nima ekanini bilib oling.
Xulosa #
- Yozish uchun JDK kerak, JRE emas.
javac Salom.javabayt-kod yaratadi,java Salomuni ishga tushiradi - ikkinchisida kengaytma yozilmaydi.- Java 11 dan
java Salom.javabilan bir buyruqda ishga tushirish mumkin. - Fayl nomi
public classnomiga aynan mos bo'lishi shart. - Paket nomi papka tuzilmasiga mos bo'ladi va teskari domen ko'rinishida yoziladi.
- Katta loyihada Maven yoki Gradle ishlatiladi; natija -
.jarfayli (aslida ZIP arxiv). java -versionvajavac -versionbir xil bo'lishi kerak.
Keyingi bo'limda turlar va o'zgaruvchilarni o'rganamiz.
O‘qish tarixini saqlamoqchimisiz?
Tizimga kirsangiz, tugatgan bo‘limlaringiz saqlanadi va qoldirgan joyingizdan davom etasiz.
Xatolik topdingizmi?
Imlo xatosi, ishlamaydigan kod yoki noto‘g‘ri ma‘lumotni ko‘rsangiz - bizga xabar bering. Har bir xabar administrator tomonidan ko‘rib chiqiladi.