JDK vs JRE vs JVM في Java - الفرق بينهما

الفرق الرئيسي بين JDK وJRE وJVM

  • JDK عبارة عن مجموعة أدوات تطوير برامج، في حين أن JRE عبارة عن حزمة برامج تسمح بتشغيل برنامج Java، في حين أن JVM عبارة عن بيئة لتنفيذ الكود الثانوي.
  • الشكل الكامل لـ JDK هو Java Development Kit، في حين أن الشكل الكامل لـ JRE هو Java Runtime Environment، في حين أن الشكل الكامل لـ JVM هو Java Virtual Machine.
  • يعتمد JDK على النظام الأساسي، كما يعتمد JRE أيضًا على النظام الأساسي، لكن JVM ليس مستقلاً عن النظام الأساسي.
  • يحتوي JDK على أدوات للتطوير وتصحيح الأخطاء وما إلى ذلك. ويحتوي JRE على مكتبات الفئات وملفات الدعم الأخرى، بينما لا يتم تضمين أدوات تطوير البرامج في JVM.
  • يأتي JDK مع برنامج التثبيت، ومن ناحية أخرى، يحتوي JRE فقط على البيئة اللازمة لتنفيذ التعليمات البرمجية المصدر بينما يتم تضمين JVM في كل من البرنامجين JDK وJRE.

ما هو JDK؟

JDK هي بيئة تطوير برمجيات تُستخدم لإنشاء تطبيقات صغيرة وتطبيقات Java. الشكل الكامل لـ JDK هو Java Development Kit. يمكن لمطوري Java استخدامه على أنظمة التشغيل Windows وmacOS وSolaris وLinux. تساعدهم JDK على برمجة برامج Java وتشغيلها. من الممكن تثبيت أكثر من إصدار JDK على نفس الكمبيوتر.

ما هو JRE؟

JRE هو جزء من برنامج مصمم لتشغيل برامج أخرى. يحتوي على مكتبات الفئات وفئة المُحمل وJVM. بعبارات بسيطة، إذا كنت تريد تشغيل برنامج Java فأنت بحاجة إلى JRE. إذا لم تكن مبرمجًا، فلا داعي لذلك تثبيت JDKولكن فقط JRE لتشغيل برامج Java. على الرغم من ذلك، تأتي جميع إصدارات JDK مرفقة مع Java Runtime Environment، لذلك لا تحتاج إلى تنزيل JRE وتثبيته بشكل منفصل على جهاز الكمبيوتر الخاص بك. الشكل الكامل لـ JRE هو Java Runtime Environment.

ما هو JVM؟

JVM هو محرك يوفر بيئة تشغيل لتشغيل كود Java أو التطبيقات. يقوم بتحويل Java bytecode إلى لغة الآلة. JVM جزء من Java Run Environment (JRE). ولا يمكن تنزيله وتثبيته بشكل منفصل. لتثبيت JVM، تحتاج إلى تثبيت JRE. الشكل الكامل لـ JVM هو آلة جافا الافتراضية.

في العديد من لغات البرمجة الأخرى، يقوم المترجم بإنتاج كود الآلة لنظام معين. ومع ذلك، يقوم برنامج Java Compiler بإنتاج تعليمات برمجية لجهاز افتراضي يسمى JVM.

لماذا استخدام JDK؟

فيما يلي الأسباب المهمة لاستخدام JDK:

  • يحتوي JDK على الأدوات اللازمة لكتابة برامج Java، وJRE لتنفيذها.
  • وهو يشتمل على مترجم، ومشغل تطبيقات Java، وAppletviewer، وما إلى ذلك.
  • يقوم المترجم بتحويل التعليمات البرمجية المكتوبة بلغة Java إلى رمز بايت.
  • يقوم مشغل تطبيقات Java بفتح JRE، وتحميل الفئة الضرورية، وتنفيذ طريقته الرئيسية.

لماذا استخدام JRE؟

فيما يلي الأسباب المهمة لاستخدام JRE:

  • يحتوي JRE على مكتبات الفئات وJVM والملفات الداعمة الأخرى. لا يحتوي على أي أداة لتطوير Java مثل مصحح الأخطاء والمترجم وما إلى ذلك.
  • ويستخدم فئات الحزمة الهامة مثل الرياضيات، swingإلخ، ومكتبات util، وlang، وawt، ووقت التشغيل.
  • إذا كان عليك تشغيل تطبيقات Java، فيجب تثبيت JRE في نظامك.

لماذا JVM؟

فيما يلي الأسباب المهمة لاستخدام JVM:

  • يوفر JVM طريقة مستقلة عن النظام الأساسي لتنفيذ كود مصدر Java.
  • يحتوي على العديد من المكتبات والأدوات والأطر.
  • بمجرد تشغيل برنامج Java، يمكنك تشغيله على أي نظام أساسي وتوفير الكثير من الوقت.
  • يأتي JVM مزودًا بمترجم JIT (Just-in-Time) الذي يحول كود مصدر Java إلى لغة آلة منخفضة المستوى. وبالتالي، فإنه يعمل بشكل أسرع كتطبيق عادي.

مميزات JDK

فيما يلي الميزات المهمة لـ JDK:

  • يمكّنك من التعامل مع امتدادات متعددة في كتلة التقاط واحدة.
  • يتضمن JDK جميع الميزات التي يمتلكها JRE.
  • يحتوي على أدوات التطوير مثل المترجم ومصحح الأخطاء وما إلى ذلك.
  • يوفر JDK البيئة اللازمة لتطوير وتنفيذ كود مصدر Java.
  • يمكن تثبيته على أنظمة التشغيل Windows، وUnix، وMac.
  • يمكن استخدام عامل التشغيل الماسي في تحديد واجهة نوع عامة بدلاً من كتابة الواجهة الدقيقة.

مميزات JRE

فيما يلي الميزات المهمة لـ JRE:

  • Java Runtime Environment عبارة عن مجموعة من الأدوات التي يتم من خلالها تشغيل JVM فعليًا.
  • يحتوي JRE على تقنية النشر، بما في ذلك Java Web Start وJava Plug-in.
  • يمكن للمطورين تشغيل الكود المصدري بسهولة في JRE، لكن لا يمكنهم كتابة برنامج Java وتجميعه.
  • يتضمن مكتبات التكامل مثل Java Database Connectivity (JDBC)، واستدعاء الطريقة عن بعد (RMI)، وتسمية Java وواجهة الدليل (JNDI)، والمزيد.
  • لدى JRE عميل الجهاز الظاهري JVM وJava HotSpot.

مميزات JVM

فيما يلي الميزات المهمة لـ JVM:

  • يمكّنك من تشغيل التطبيقات في بيئة سحابية أو في جهازك.
  • تقوم Java Virtual Machine بتحويل كود البايت إلى الكود الخاص بالجهاز.
  • يوفر وظائف جافا الأساسية مثل إدارة الذاكرة والأمن وجمع البيانات المهملة والمزيد.
  • يقوم JVM بتشغيل البرنامج باستخدام المكتبات والملفات المقدمة من Java Runtime Environment.
  • يحتوي كل من JDK وJRE على Java Virtual Machine.
  • يمكنه تنفيذ برنامج جافا سطرًا تلو الآخر ومن ثم يطلق عليه أيضًا اسم المترجم.
  • JVM قابل للتخصيص بسهولة، على سبيل المثال، يمكنك تخصيص الحد الأدنى والحد الأقصى من الذاكرة له.
  • وهو مستقل عن الأجهزة ونظام التشغيل. لذلك، يمكنك كتابة برنامج جافا مرة واحدة وتشغيله في أي مكان.

كيف تعمل JDK؟

وظائف JDK
وظائف JDK

فيما يلي المكونات المهمة لـ JDK:

  • JDK و JRE: يمكّن JDK المبرمجين من إنشاء برامج Java الأساسية التي يمكن تشغيلها بواسطة JRE، والتي تتضمن JVM ومكتبات الفئات.
  • مكتبات الصف: إنها مجموعة من المكتبات القابلة للتحميل ديناميكيًا والتي يمكن لبرنامج Java الاتصال بها في وقت التشغيل.
  • المجمعين: إنه برنامج Java يقبل الملفات النصية للمطورين ويجمعها في ملف فئة Java. وهو الشكل الشائع للمخرجات التي يقدمها المترجم، والذي يحتوي على كود Java بايت. في Java، المترجم الأساسي هو Javac.
  • مصححات: Debugger هو برنامج Java يتيح للمطورين اختبار برامج Java وتصحيح أخطائها.
  • جافا دوك: JavaDoc عبارة عن وثائق أعدتها شركة Sun Microsystems لـ Java. يمكن استخدام JavaDoc لإنشاء وثائق API في ملف HTML من البرنامج المصدر

كيف يعمل JRE؟

وظائف JRE

وظيفة جي آر إي

يحتوي JRE على مثيل JVM معه، وفئات المكتبة، وأدوات التطوير. بمجرد كتابة وتجميع كود Java، يقوم المترجم بإنشاء ملف فئة يحتوي على كود بايت.

فيما يلي المكونات المهمة لـ JRE:

  • محمل الطبقة: يقوم محمل الفئة بتحميل فئات مختلفة ضرورية لتشغيل برنامج Java. يستخدم JVM ثلاثة محمل فئة تسمى محمل فئة التمهيد، ومحمل فئة الامتدادات، ومحمل فئة النظام.
  • التحقق من رمز البايت: يتحقق برنامج التحقق من رمز البايت من الكود الثانوي بحيث لا يزعج الكود المترجم.
  • مترجم: بمجرد تحميل الفئات والتحقق من الكود، يقرأ المترجم الكود سطرًا تلو الآخر.
  • وقت التشغيل: وقت التشغيل هو نظام يستخدم بشكل رئيسي في البرمجة لوصف الفترة الزمنية التي يتم خلالها تشغيل برنامج معين.
  • الأجهزة: بمجرد تجميع تعليمات Java البرمجية الأصلية، يتم تشغيلها على نظام أساسي محدد للأجهزة.

بهذه الطريقة، يتم تشغيل برنامج Java في JRE.

كيف تعمل JVM؟

وظائف JVM

وظائف JVM

فيما يلي المكونات المهمة لـ JVM:

1) محمل الفئة

مُحمل الفئة هو نظام فرعي يستخدم لتحميل ملفات الفئة. ينفذ ثلاث وظائف رئيسية viz. التحميل والربط والتهيئة.

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 Development Kit. الشكل الكامل لـ JRE هو Java Runtime Environment. الشكل الكامل لـ JVM هو Java Virtual Machine.
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.