تمامی سه مورد JDK، JRE و JVM به هم وابسته هستند. JDK یا کیت توسعه جاوا برای توسعهدهندگان است تا برنامههای مبتنی بر جاوا را توسعه دهند. JRE یا محیط اجرایی جاوا جایی است که برنامه جاوا در آن اجرا میشود. JDK شامل JRE به عنوان بخشی جداییناپذیر از خود است. همچنین میتوان JRE را بهطور جداگانه بر روی سیستمهایی که نیازی به توسعه ندارند نصب کرد و تنها برای اجرای برنامههای مبتنی بر جاوا یا اجرای یک برنامه جاوا استفاده کرد. JVM یک مشخصه است و میتواند پیادهسازیهای مختلفی داشته باشد، تا زمانی که با مشخصات آن سازگار باشد. مشخصات این پیادهسازیها را میتوانید در لینک مشاهده کنید .JRE پیادهسازی JVM است.
JDK چیست؟
JDK مخفف Java Development Kit یا کیت توسعه جاوا است که شامل تمام ابزارها، برنامههای اجرایی و باینریهای لازم برای کامپایل، دیباگ و اجرای یک برنامه جاوا میباشد. JDK وابسته به پلتفرم است، یعنی برای سیستمعاملهای مختلف مانند ویندوز، مک و یونیکس نصبکنندههای جداگانهای دارد. JDK شامل هر دو مورد JVM و JRE است و کاملاً مسئول اجرای کد میباشد. نسخه JDK نمایانگر نسخهای از جاوا است.
JRE چیست؟
JRE یا Java Runtime Environment محیط اجرایی جاوا است که پیادهسازی JVM میباشد، یعنی مشخصات تعریفشده در JVM پیادهسازی شده و محیطی مطابق آن برای اجرای کد فراهم میکند. JRE عمدتاً شامل باینریهای جاوا و کلاسهای دیگر برای اجرای برنامه است، مانند JVM که به صورت فیزیکی وجود دارد. به همراه باینریهای جاوا، JRE همچنین شامل تکنولوژیهای مختلف برای استقرار، رابطهای کاربری برای تعامل با کد اجراشده، برخی کتابخانههای پایه برای عملکردهای مختلف، و کتابخانههای مبتنی بر زبان و ابزار است.
JVM چیست؟
JVM مخفف Java Virtual Machine یا ماشین مجازی جاوا است که یک مشخصه است که محیط اجرایی را فراهم میکند که در آن کد بایت جاوا میتواند اجرا شود، یعنی چیزی است که انتزاعی بوده و پیادهسازی آن مستقل از انتخاب الگوریتم است و توسط سان و شرکتهای دیگر فراهم شده است. این JVM است که مسئول تبدیل کد بایت به کد خاص ماشین میباشد. همچنین میتواند برنامههایی را که به زبانهای دیگر نوشته شدهاند و به کد بایت جاوا کامپایل شدهاند، اجرا کند. وظایف JVM عبارتند از: بارگذاری کد، تأیید کد، اجرای کد و فراهم کردن محیط اجرایی.
تفاوتهای بین JDK، JRE و JVM
در زیر تفاوتهای مهم بین JDK، JRE و JVM آورده شده است: