5-modul · 2-dars: Jar Files

Daraja: O'rta

Jar Files. Java kutubxonalari va Stream bo‘yicha nazariya, amaliy namuna va mustaqil mashq.

Tushuntirish

## Dars maqsadi Jar Files tushunchalarini farqlash, nima uchun kerakligini izohlash va kichik misolda qo‘llash.

## Nazariya Java ARchive — bir necha `.class` fayl, resurs va metama'lumotni bitta siqilgan (ZIP) faylga jamlaydigan format.

Ko'p faylni bittaga jamlaydi, siqadi (kichik hajm), tarqatish/ishga tushirish oson, versiyalash va bog'liqliklarni boshqarish qulay.

## Intervyuga tayyorgarlik ### jar fayl nima? Java ARchive — bir necha `.class` fayl, resurs va metama'lumotni bitta siqilgan (ZIP) faylga jamlaydigan format.

### jar fayldan foydalanishning foydali tomonlari? Ko'p faylni bittaga jamlaydi, siqadi (kichik hajm), tarqatish/ishga tushirish oson, versiyalash va bog'liqliklarni boshqarish qulay.

### manifest fayl qanday fayl? JAR ichidagi `META-INF/MANIFEST.MF` fayli — arxiv haqidagi metama'lumotni (versiya, `Main-Class`, classpath) saqlaydi.

### manifest fayl nima uchun kerak? JAR haqidagi sozlamalarni belgilash uchun — masalan `Main-Class` (dastur qaysi classdan boshlanishi) va `Class-Path`.

### executable jar qanday jar? Manifest da `Main-Class` ko'rsatilgan JAR; `java -jar file.jar` bilan to'g'ridan ishga tushiriladi.

## Versiya va aniqlik Java misollari Java 17 bazasiga mo‘ljallangan. JDK/JRE paketlash usuli distributivga bog‘liq; JVM bayt-kodni interpretatsiya va JIT orqali bajarishi mumkin. GC uchun aniq bajarilish vaqtiga kafolat yo‘q; finalization resurs yopish usuli emas. Thread stop/suspend/resume kabi eski metodlar amaliy yechim emas. Koddagi import, klass yoki tashqi kutubxona kontekstini tekshiring.

Manbadagi 17 dars oldingi o‘quv arxividagi 10 guruhga birlashtirilgan: Lombok/Faker va Stream/Collectors hamda HttpClient/Gson/Reflection/Annotations birgalikda o‘rganiladi.

## Manbalar [Moduldagi savollar yo‘nalishi](https://github.com/jlkesh/pdp_online_java_lessons/blob/main/interviewquestions/5-module.md) [Rasmiy qo‘llanma](https://dev.java/learn/) [Sizning avvalgi savol-javob arxivingiz](https://lightyer.uz/java/interview.html)

Kod quyida o‘quv namunasi sifatida berilgan. To‘liq ilova uchun import, dependency va konfiguratsiya kerak bo‘lishi mumkin. SQLni faqat ajratilgan test bazasida bajaring.

Kod misoli

# Kompilyatsiya qilingan Main.class uchun terminalda:
jar --create --file study.jar --main-class Main Main.class
java -jar study.jar

Keng tarqalgan xatolar

Mashqlar

Teglar: nazariya, pdp, modul-05

Interaktiv ko'rinish (viktorina, izohlar, tarix)