Java Development Kit

Java Development Kit(**JDK**) Oracle korporatsiyasi tomonidan ishlab chiqilgan Java texnologiyasining distributsiyasidir. U Java tili spetsifikatsiyasi(**JLS**) va Java virtual mashina spetsifikatsiyasini (**JVMS**) qoʻllaydi va Java dasturlash interfeysining(**API**) standart nashrini (**SE**) taqdim etadi. Bu Oracle tomonidan tashkil etilgan OpenJDK hamjamiyatining loyihasidir.  Ushbu toʻplam Java ilovalari bilan ishlash uchun dasturiy taʼminotni taqdim etadi. Misol uchun, Java dasturchilari uchun zarur boʻlgan virtual mashina, kompilyatorlar, samaradorlikni monitoring qiluvchi asbob-uskunalar va shu kabi boshqa zaruriy utilitlarni oʻz ichiga olgan.

Oracle ushbu dasturiy taʼminotni hozirgi versiyasini Oracle No-Fee Terms and Conditions(**NFTC**) litsenziyasi ostida ishlab chiqarmoqda. Oracle distributsiyani hozirda x86-64 arxitekturasidagi Windows, Linux, macOS operatsion tizimlari, hamda aarch64 arxitekturasidagi macOS va Linux tizimlari uchun ishlab chiqadi. Eskiroq versiyalari esa Oracle Solaris operatsion tizimi va SPARC arxitekturasini qoʻllab quvvatlaydi.

Shuningdek, Oracle **JVMS** ning asosiy implementatsiyasi HotSpot(virtual mashina) nomi bilan ham tanilgan.

## JDK tarkibi
JDK oʻzining asosiy komponentlari sifatida quyidagi dasturlash vositalari toʻplamiga ega, jumladan:

* appletviewer &#x2013; bu vosita Java ilovalarini veb-brauzersiz ishga tushirish va test qilish uchun ishlatilishi mumkin.
* apt &#x2013; annotatsiya uskunasi 
* extcheck &#x2013; JAR faylidagi konfliktlarni aniqlaydigan yordamchi dastur
* idlj &#x2013; IDL dan Java-ga oʻtkazuvchi kompilyator. Ushbu yordamchi dastur Java IDL faylidan Java bogʻlanmalarini yaratadi.
* jabswitch &#x2013; Java Access Bridge(oʻzb. Java Kirish Koʻprigi) hisoblanadi va Microsoft Windows tizimlaridagi assistant uskuna va texnologiyalarni ishga tushirib beradi.
* java &#x2013; Java ilovlalari uchun yuklovchi dastur. Ushbu vosita mashina tarjimoni boʻlib, javac kompilyatori tomonidan yaratilgan klass fayllarini tarjima qilib beradi. Ushbu dastur yordamida ishlab chiqish va ishga tushirish jarayonlarini birgalikda amalga oshirish mumkin.
* javac &#x2013; Java kompilyatori hisoblanib, dastur kodini Java bayt kodiga oʻgiradi
* javadoc &#x2013; manba kodidan avtomatik ravishda yaratilgan dokumentatsiyalar generatori
* jar &#x2013; tegishli klass kutubxonalarini bitta JAR fayliga toʻplaydigan arxivator. Ushbu vosita JAR fayllarini boshqarishga ham yordam beradi.
* javafxpackager &#x2013; JavaFX ilovalarini paketlash va imzolash uchun vosita
* jarsigner &#x2013; jar imzolash va tekshirish vositasi
* javah &#x2013; nativ metodlar yozish uchun ishlatiladigan C header va stub generatori.
* javap &#x2013; klass faylini qismlarga ajratuvchi vosita.
* javaws &#x2013; JNLP ilovalari uchun Java Web Start ishga tushiruvchisi.
* JConsole &#x2013; Java monitoringi va boshqaruv konsoli.
* jdb &#x2013; xatoliklarni tuzatuvchi yordamchi dastur.
* jhat &#x2013; Java Heap tahlil vositasi (eksperimental).
* jinfo &#x2013; Ushbu yordamchi dastur ishlayotgan Java protsessidan yoki ishdan chiqqan dumpdan konfiguratsiya maʼlumotlarini oladi. (eksperimental)
* jmap Oracle jmap – Xotira xaritasi &#x2013; Ushbu yordamchi dastur Java uchun xotira xaritasini chiqaradi va umumiy obyekt xotira xaritalarini yoki maʼlum jarayon yoki yadro toʻplamining yigʻma xotira tafsilotlarini chop etishi mumkin. (eksperimental)
* jmc &#x2013; Java Mission Control
* jpackage &#x2013; dastur toʻplamlarini yaratish uchun vosita. (eksperimental)
* jps &#x2013; Java Virtual Machine Process Status Tool asbobi hisoblanib, aniq tizimda moslashtirilgan HotSpot Java Virtual Machines (JVMs) roʻyxatlarini koʻrsatadi. (eksperimental)
* jrunscript &#x2013; Java buyruqlar qatorining skript shell-i hisoblanadi.
* jstack &#x2013; Java oqimlarining Java steklarini chop etuvchi yordamchi dastur (eksperimental).
* jstat &#x2013; Java virtual mashinasi statistikasini monitoring qilish vositasi (eksperimental).
* jstatd &#x2013; jstat daemon vositasi(eksperimental).
* keytool &#x2013; keystore-ni boshqarish uchun vosita
* pack200 &#x2013; JAR kompressor vositasi.
* xjc &#x2013; XML Binding (JAXB) API uchun Java API ning bir qismi. U XML sxemasini qabul qiladi va Java klasslarini yaratadi.

Eksperimental vositalar JDK ning kelajakdagi versiyalarida mavjud boʻlmasligi mumkin.

JDK toʻplami, shuningdek, „oddiy“ JRE toʻplamidan ajratilganligi va qoʻshimcha komponentlarga ega boʻlgan, odatda private runtime deb ataladigan toʻliq Java Runtime Environment (JRE) bilan birga keladi. U Java virtual mashinasi va dasturiy muhitida mavjud boʻlgan barcha klass kutubxonalaridan, shuningdek, dasturchilar uchun foydali boʻlgan qoʻshimcha kutubxonalardan, masalan, xalqaro kutubxonalar va IDL kutubxonalaridan iborat.

JDK ning barcha versiyalari Java API ning deyarli barcha komponentlaridan foydalanadigan dasturlarning keng qamrovini oʻz ichiga oladi.

## Boshqa JDKlar
Ushbu maqolada muhokama qilingan eng keng tarqalgan JDK-dan tashqari, turli platformalar uchun boshqa JDK-lar mavjud boʻlib, ularning baʼzilari Sun JDK manbasidan ishlab chiqilgan, baʼzilari esa yoʻq. Hammasi asosiy Java spetsifikatsiyalariga amal qiladi, lekin koʻpincha kompilyatsiya strategiyalari va optimallashtirish metodlari kabi sohalarda bir-biridan farqlanadi. Ularga quyidagilar kiradi:

Ishlab chiqilgan yoki texnik xizmat qoʻllab-quvvatlash rejimida:

* Azul Systems Zing, Linux uchun JDK; 
* Azul Systems / OpenJDK asosidagi Zulu, ushbu JDk Linux, Windows, Mac OS X ga oʻrnatilgan.
* OpenJDK / IcedTea;
* Aicas JamaicaVM;
* IBM J9 JDK, AIX, Linux, Windows, MVS, OS/400, Pocket PC, z/OS uchun; 

Qoʻllab-quvvatlanmaydigan yoki toʻxtatilgan:

* Apache Harmony;
* Apple kompaniyasining Mac OS Runtime; Klassik Mac OS uchun Java JVM/JDK .
* Blackdown Java &#x2013; Linux uchun Sunʼs JDK porti;  
* GNU Classpath va GCJ (Java uchun GNU kompilyatori);
* Oracle korporatsiyasining Windows, Linux va Solaris uchunJRockit JDK; 

## Yana qarang
* Classpath
* Java platformasi
* Java versiyasi tarixi

## Manbalar

## Havolalar

* Oracle Java SE
* Oracle Java SE qoʻllab-quvvatlash yoʻl xaritasi
* Ochiq kodli OpenJDK loyihasi
* OpenJDK builds from Oracle
* OpenJDK builds from AdoptOpenJDK
* IBM Java SDK Downloads
* Ochiq manbali JDK 7 loyihasi
* GNU Classpath &#x2013; bepul dasturiy taʼminot