JVM vs JRE
جاوا یک زبان برنامه نویسی چند پلتفرمی است. همچنین به اصل «یک بار بنویس، هرجا اجرا کن» پایبند است. برنامه نوشته شده در جاوا را می توان توسط کامپایلر جاوا در بایت کد جاوا کامپایل کرد. سپس، بایت کد را می توان بر روی هر پلتفرمی که JRE (محیط زمان اجرا جاوا) اجرا می کند، اجرا کرد. JRE شامل JVM (ماشین مجازی جاوا)، کتابخانه های پایه (که API جاوا را پیاده سازی می کند) و سایر فایل های پشتیبانی می شود. JVM یک ماشین محاسباتی انتزاعی است که به عنوان یک واسطه بین پلتفرم های خاص JRE و کد جاوا عمل می کند.
JVM چیست؟
JVM نوعی ماشین مجازی است که توسط ماشین ها برای اجرای بایت کد جاوا استفاده می شود.طبق گفته Sun Microsystems (که جاوا را تا زمانی که اوراکل خریداری کرد، توسعه داد)، بیش از 4 میلیارد دستگاه دارای JVM در جهان وجود دارد. به طور خاص، ماشین مجازی جاوا یک ماشین محاسباتی انتزاعی است که بر روی سخت افزار و سیستم عامل استاندارد پیاده سازی شده است. یکی از قابلیت های مهم ارائه شده توسط JVM مدیریت خودکار استثناها است. به طور معمول، مجموعه ای از کتابخانه های استاندارد JVM را همراهی می کنند. در واقع، JRE یک بسته نرم افزاری حاوی JVM و کلاس هایی است که Java API را پیاده سازی می کنند. JVM یک مؤلفه بسیار مهم است که ماهیت "یک بار کامپایل، هرجا اجرا" زبان برنامه نویسی جاوا را در خود جای می دهد. تا زمانی که JVM در حال اجرا است، کد جاوا شما می تواند بدون توجه به پلتفرم مورد استفاده در دستگاه، روی آن اجرا شود. به همین دلیل است که جاوا را یک زبان چند پلتفرمی یا چند پلتفرمی می نامند.
JRE چیست؟
JRE محیط اجرایی است که کد جاوا روی آن اجرا می شود. به طور معمول، JRE از JVM، کلاس های پایه استاندارد (که API پایه جاوا را پیاده سازی می کند) و سایر فایل های پشتیبانی تشکیل شده است.نوع و ساختار JRE بسته به سیستم عامل و معماری CPU متفاوت است. هنگامی که کد جاوا اجرا می شود، JRE با سیستم عامل ارتباط برقرار می کند که به نوبه خود با اجزای سخت افزاری مربوطه صحبت می کند. نصب JRE بر روی سیستم شما برای اجرای هر کد جاوا بر روی دستگاه شما ضروری است. با این حال، JRE شامل کامپایلر، دیباگر یا هر ابزار دیگری که برای توسعه برنامههای جاوا مورد نیاز است (مانند appletviewer و javac) نیست. اگر نیاز به توسعه برنامهها در جاوا دارید، باید JDK (کیت توسعه جاوا) را داشته باشید که شامل JRE نیز میشود.
تفاوت بین JVM و JRE چیست؟
اگرچه، در استفاده روزمره، اصطلاحات JVM و JRE به جای یکدیگر استفاده می شوند، اما تفاوت های خود را دارند. JVM یک ماشین مجازی است که در بالای سیستم عامل اجرا می شود، در حالی که JRE محیط اجرای زمان اجرا است. JVM بخشی از JRE است. مشخصات JVM به عنوان رابط بین پیاده سازی JRE مخصوص پلتفرم و کتابخانه های استاندارد جاوا عمل می کند.بنابراین، JVM نهادی است که انتزاع از جزئیات پیاده سازی درونی را برای برنامه نویس فراهم می کند. و وظیفه تفسیر بایت کد کامپایل شده را بر عهده دارد. با این حال، JVM برای اجرای بایت کد جاوا به کتابخانه های پایه و سایر فایل های پشتیبانی نیاز دارد. اما گاهی اوقات، JRE به سادگی به عنوان پیاده سازی JVM شناخته می شود.