JDK مقابل JRE مقابل JVM في Java - الفرق بينهما
الفرق الرئيسي بين JDK وJRE وJVM
- JDK عبارة عن مجموعة أدوات لتطوير البرامج بينما JRE عبارة عن حزمة برامج تسمح بذلك Java برنامج للتشغيل، في حين أن JVM هي بيئة لتنفيذ الكود الثانوي.
- الشكل الكامل لـ JDK هو Java مجموعة أدوات التطوير، في حين أن الشكل الكامل لـ JRE هو Java بيئة وقت التشغيل، في حين أن الشكل الكامل لـ JVM هو Java آلة افتراضية.
- تعتمد JDK وJRE على النظام الأساسي، بينما JVM مستقلة عن النظام الأساسي على مستوى البايت كود ولكنها تعتمد على التنفيذات الخاصة بالنظام الأساسي.
- يحتوي JDK على أدوات للتطوير وتصحيح الأخطاء وما إلى ذلك. ويحتوي JRE على مكتبات الفئات وملفات الدعم الأخرى، بينما لا يتم تضمين أدوات تطوير البرامج في JVM.
- يأتي JDK مع برنامج التثبيت، ومن ناحية أخرى، يحتوي JRE فقط على البيئة اللازمة لتنفيذ التعليمات البرمجية المصدر بينما يتم تضمين JVM في كل من البرنامجين JDK وJRE.
ما هو JDK؟
JDK هي بيئة تطوير برمجيات تستخدم لإنشاء التطبيقات الصغيرة و Java التطبيقات. الشكل الكامل لـ JDK هو Java مجموعة تطوير. Java يمكن للمطورين استخدامه على Windows, macOS, Solarisو لينكس. تساعدهم JDK على البرمجة والتشغيل Java البرامج. من الممكن تثبيت أكثر من إصدار JDK على نفس الكمبيوتر.
ما هو JRE؟
JRE هو جزء من برنامج مصمم لتشغيل برامج أخرى. يحتوي على مكتبات الفئات وفئة المُحمل وJVM. بعبارات بسيطة، إذا كنت تريد الركض Java البرنامج الذي تحتاجه JRE. إذا لم تكن مبرمجًا، فلا داعي لذلك تثبيت JDKولكن فقط JRE للتشغيل Java البرامج. على الرغم من ذلك، تأتي جميع إصدارات JDK مرفقة مع Java بيئة وقت التشغيل، لذلك لا تحتاج إلى تنزيل JRE وتثبيته بشكل منفصل على جهاز الكمبيوتر الخاص بك. الشكل الكامل لـ JRE هو Java بيئة وقت التشغيل.
ما هو JVM؟
JVM هو محرك يوفر بيئة تشغيل لتشغيل Java الكود أو التطبيقات. إنه يحول Java bytecode إلى لغة الآلة. JVM جزء من Java بيئة التشغيل (JRE). ولا يمكن تنزيله وتثبيته بشكل منفصل. لتثبيت JVM، تحتاج إلى تثبيت JRE. الشكل الكامل لـ JVM هو Java آلة افتراضية.
في العديد من لغات البرمجة الأخرى، يقوم المترجم بإنتاج كود الآلة لنظام معين. لكن، Java يقوم المترجم بإنتاج رمز لجهاز افتراضي يسمى JVM.
لماذا استخدام JDK؟
فيما يلي الأسباب المهمة لاستخدام JDK:
- يحتوي JDK على الأدوات المطلوبة للكتابة Java البرامج وJRE لتنفيذها.
- ويحتوي على مترجم، Java مشغل التطبيقات، وAppletviewer، وما إلى ذلك.
- يقوم المترجم بتحويل التعليمات البرمجية المكتوبة فيه Java في رمز البايت.
- Java يفتح مشغل التطبيق JRE، ويقوم بتحميل الفئة الضرورية، وينفذ طريقته الرئيسية.
لماذا استخدام JRE؟
فيما يلي الأسباب المهمة لاستخدام JRE:
- يحتوي JRE على مكتبات الفئات وJVM والملفات الداعمة الأخرى. أنها لا تحتوي على أي أداة ل Java التطوير مثل مصحح الأخطاء والمترجم وما إلى ذلك.
- ويستخدم فئات الحزم الهامة مثل math، وswingetc، وutil، وlang، وawt، ومكتبات وقت التشغيل.
- إذا كان عليك الركض Java التطبيقات الصغيرة، فيجب تثبيت JRE في نظامك.
لماذا JVM؟
فيما يلي الأسباب المهمة لاستخدام JVM:
- يوفر JVM طريقة تنفيذ مستقلة عن النظام الأساسي Java مصدر الرمز.
- يحتوي على العديد من المكتبات والأدوات والأطر.
- بمجرد تشغيل Java البرنامج، يمكنك تشغيله على أي منصة وتوفير الكثير من الوقت.
- يأتي JVM مزودًا بمترجم JIT (في الوقت المناسب) الذي يقوم بالتحويل Java كود المصدر إلى لغة الآلة ذات المستوى المنخفض. وبالتالي، فإنه يعمل بشكل أسرع كتطبيق عادي.
مميزات JDK
فيما يلي الميزات المهمة لـ JDK:
- يمكّنك من التعامل مع امتدادات متعددة في كتلة التقاط واحدة.
- يتضمن JDK جميع الميزات التي يمتلكها JRE.
- يحتوي على أدوات التطوير مثل المترجم ومصحح الأخطاء وما إلى ذلك.
- توفر JDK البيئة اللازمة للتطوير والتنفيذ Java مصدر الرمز.
- يمكن تثبيته على Windowsوأنظمة التشغيل Unix وMac.
- يمكن استخدام عامل الماس في تحديد واجهة نوع عامة بدلاً من كتابة واجهة محددة.
مميزات JRE
فيما يلي الميزات المهمة لـ JRE:
- Java بيئة وقت التشغيل عبارة عن مجموعة من الأدوات التي يتم من خلالها تشغيل JVM فعليًا.
- يحتوي JRE على تقنية النشر، بما في ذلك Java بداية الويب و Java توصيل في.
- يمكن للمطورين تشغيل الكود المصدري بسهولة في JRE، لكن لا يمكنهم كتابة وتجميع الكود المصدري Java برنامج.
- ويشمل مكتبات التكامل مثل Java اتصال قاعدة البيانات (JDBC)، واستدعاء الطريقة عن بعد (RMI)، Java واجهة التسمية والدليل (JNDI)، والمزيد.
- JRE لديه JVM و Java عميل الجهاز الظاهري HotSpot.
مميزات JVM
فيما يلي الميزات المهمة لـ JVM:
- يمكّنك من تشغيل التطبيقات في بيئة سحابية أو في جهازك.
- Java يقوم Virtual Machine بتحويل كود البايت إلى الكود الخاص بالجهاز.
- يوفر وظائف جافا الأساسية مثل إدارة الذاكرة والأمن وجمع البيانات المهملة والمزيد.
- يقوم JVM بتشغيل البرنامج باستخدام المكتبات والملفات المقدمة بواسطة Java بيئة وقت التشغيل.
- يحتوي كل من JDK وJRE على Java آلة افتراضية.
- يمكنه تنفيذ برنامج جافا سطرًا تلو الآخر ومن ثم يطلق عليه أيضًا اسم المترجم.
- JVM قابل للتخصيص بسهولة، على سبيل المثال، يمكنك تخصيص الحد الأدنى والحد الأقصى من الذاكرة له.
- إنه مستقل عن الأجهزة ونظام التشغيل. لذا، يمكنك كتابة برنامج Java مرة واحدة وتشغيله في أي مكان.
كيف تعمل JDK؟

فيما يلي المكونات المهمة لـ JDK:
- JDK و JRE: يمكّن JDK المبرمجين من إنشاء النواة Java البرامج التي يمكن تشغيلها بواسطة JRE، والتي تتضمن JVM ومكتبات الفئات.
- مكتبات الصف: إنها مجموعة من المكتبات القابلة للتحميل ديناميكيًا Java يمكن للبرنامج الاتصال في وقت التشغيل.
- المجمعين: هو Java برنامج يقبل الملفات النصية للمطورين ويجمعها في Java ملف الصف. هذا هو الشكل الشائع للإخراج الذي يقدمه المترجم، والذي يحتوي على Java رمز البايت. في Java، المترجم الأساسي هو Javac.
- مصححات: المصحح هو Java برنامج يتيح للمطورين الاختبار والتصحيح Java البرامج.
- Javaالمستند: JavaDoc عبارة عن وثائق أعدتها شركة Sun Microsystems لـ Java. Javaيمكن استخدام Doc لإنشاء وثائق API في ملف HTML من البرنامج المصدر
كيف يعمل JRE؟
يحتوي JRE على مثيل JVM معه، وفئات المكتبة، وأدوات التطوير. بمجرد الكتابة والتجميع Java رمز، يقوم المترجم بإنشاء ملف فئة يحتوي على رمز بايت.
فيما يلي المكونات المهمة لـ JRE:
- محمل الطبقة: يقوم محمل الفئة بتحميل فئات مختلفة ضرورية لتشغيل ملف Java برنامج. يستخدم JVM ثلاثة محمل فئة تسمى محمل فئة التمهيد، ومحمل فئة الامتدادات، ومحمل فئة النظام.
- التحقق من رمز البايت: يتحقق برنامج التحقق من رمز البايت من الكود الثانوي بحيث لا يزعج الكود المترجم.
- مترجم: بمجرد تحميل الفئات والتحقق من الكود، يقرأ المترجم الكود سطرًا تلو الآخر.
- وقت التشغيل: وقت التشغيل هو نظام يستخدم بشكل رئيسي في البرمجة لوصف الفترة الزمنية التي يتم خلالها تشغيل برنامج معين.
- الأجهزة: بمجرد تجميع Java الكود الأصلي، فهو يعمل على منصة أجهزة محددة.
بهذه الطريقة ، Java يعمل البرنامج في JRE.
كيف تعمل JVM؟
فيما يلي المكونات المهمة لـ JVM:
1) محمل الفئة
محمل الفئة هو نظام فرعي يستخدم لتحميل ملفات الفئة. وهو يؤدي ثلاث وظائف رئيسية وهي: التحميل والربط والتهيئة.
2) منطقة الطريقة
تقوم منطقة طريقة JVM بتخزين بنية الفئة مثل البيانات التعريفية والرمز الخاص بها Java الأساليب، وتجمع وقت التشغيل المستمر.
3) كومة
يتم تخزين كافة الكائنات والمصفوفات ومتغيرات المثيل في كومة. تتم مشاركة هذه الذاكرة عبر عدة سلاسل رسائل.
4) مكدسات لغة JVM
Java تقوم مكدسات اللغة بتخزين المتغيرات المحلية ونتائجها الجزئية. يحتوي كل مؤشر ترابط على حزمة لغة JVM الخاصة به، والتي يتم إنشاؤها بشكل متزامن أثناء إنشاء مؤشر الترابط. يتم إنشاء إطار جديد عند استدعاء الطريقة، ويتم إزالته عند اكتمال عملية استدعاء الطريقة.
5) سجلات الكمبيوتر
تقوم سجلات الكمبيوتر بتخزين عنوان Java تعليمات الجهاز الظاهري، والتي يتم تنفيذها حاليًا. في Java، كل موضوع له سجل منفصل للكمبيوتر الشخصي.
6) مكدسات الطريقة الأصلية
تحتوي مكدسات الطريقة الأصلية على تعليمات التعليمات البرمجية الأصلية التي تعتمد على المكتبة الأصلية. يقوم بتخصيص الذاكرة على أكوام الذاكرة المؤقتة الأصلية أو يستخدم أي نوع من المكدسات.
7) محرك التنفيذ
إنه نوع من البرامج يُستخدم لاختبار البرامج أو الأجهزة أو الأنظمة الكاملة. لا يحمل محرك تنفيذ الاختبار أبدًا أي معلومات حول المنتج الذي تم اختباره.
8) واجهة الطريقة الأصلية
واجهة الطريقة الأصلية هي إطار برمجة. انها تسمح Java الكود الذي يتم تشغيله في JVM للاتصال به من خلال المكتبات والتطبيقات الأصلية.
9) مكتبات الطريقة الأصلية
المكتبات الأصلية هي مجموعة من المكتبات الأصلية (C، C++)، والتي يحتاجها محرك التنفيذ.
الفرق بين JDK وJRE وJVM
فيما يلي الاختلافات الرئيسية بين JDK وJRE وJVM:
| JDK | JRE | JVM |
|---|---|---|
| الشكل الكامل لـ JDK هو Java مجموعة تطوير. | الشكل الكامل لـ JRE هو Java بيئة وقت التشغيل. | الشكل الكامل لـ JVM هو Java آلة افتراضية. |
| JDK عبارة عن مجموعة أدوات تطوير برمجيات لتطوير التطبيقات فيها Java. | إنها حزمة البرامج التي توفر Java مكتبات الصف مع المكونات الضرورية للتشغيل Java رمز. | يتم تنفيذ JVM Java بايت كود ويوفر بيئة لتنفيذه. |
| JDK يعتمد على النظام الأساسي. | تعتمد JRE أيضًا على النظام الأساسي. | JVM مستقل عن المنصة. |
| أنه يحتوي على أدوات لتطوير وتصحيح ومراقبة كود جافا. | يحتوي على مكتبات الفئات والملفات الداعمة الأخرى التي يتطلبها JVM لتنفيذ البرنامج. | لا يتم تضمين أدوات تطوير البرمجيات في JVM. |
| إنها المجموعة الشاملة لـ JRE | إنها مجموعة فرعية من JDK. | JVM هي مجموعة فرعية من JRE. |
| يمكّن JDK المطورين من إنشاء Java البرامج التي يمكن تنفيذها وتشغيلها بواسطة JRE وJVM. | JRE هو جزء من Java الذي ينشئ JVM. | انها Java مكون النظام الأساسي الذي ينفذ التعليمات البرمجية المصدر. |
| JDK يأتي مع المثبت. | يحتوي JRE فقط على بيئة لتنفيذ التعليمات البرمجية المصدر. | تم تضمين JVM في كل من البرنامجين JDK وJRE. |
