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
- Bog'liqliklarni jar ga qo'shmasdan `java -jar` qilish - NoClassDefFoundError chiqadi.
- Manifest da `Main-Class` ni ko'rsatmaslik.
Mashqlar
- Kichik loyihani executable jar qilib yig'ing va boshqa papkadan ishga tushiring.
- Jar ichini ochib (`jar tf`), MANIFEST.MF ni o'qing.
Teglar: nazariya, pdp, modul-05