مقارنة بين JVM وJRE وJDK: ما الفرق بينهم؟

مهندس يكتب على حائط أمام أعضاء فريق

تُعد Java واحدة من لغات البرمجة الأكثر شهرة والتي تُستخدم في بيئات التطوير اليوم. وهي تُستخدم بشكل أساسي في مشاريع تطوير الواجهات الخلفية وتطوير الألعاب وحوسبة سطح المكتب والأجهزة المحمولة. تابع القراءة واكتشف كيف يؤدي كلٌّ من آلة جافا الافتراضية (JVM)، وبيئة تشغيل جافا (JRE)، ومجموعة تطوير جافا (JDK) دورًا في عملية تطوير Java. ستتعرف أيضًا على علاقتهم ببعضهم وأوجه الاختلاف التي تُميّزهم.

أحدث الأخبار التقنية، مدعومة برؤى خبراء

ابقَ على اطلاع دومًا بأهم—اتجاهات المجال وأكثرها إثارة للفضول—بشأن الذكاء الاصطناعي والأتمتة والبيانات وغيرها الكثير مع نشرة Think الإخبارية. راجع بيان الخصوصية لشركة IBM.

شكرًا لك! أنت مشترك.

سيتم تسليم اشتراكك باللغة الإنجليزية. ستجد رابط إلغاء الاشتراك في كل رسالة إخبارية. يمكنك إدارة اشتراكاتك أو إلغاء اشتراكك هنا. راجع بيان خصوصية IBM لمزيد من المعلومات.

ما المقصود بآلة جافا الافتراضية (JVM)؟

آلة جافا الافتراضية، أو JVM، تعمل على تحميل البايت كود لجافا والتحقق منه وتشغيله. تُعرف باسم المترجم أو جوهر لغة البرمجة جافا لأنها تدير البرمجة بلغة جافا.

دور آلة جافا الافتراضية في جافا

آلة جافا الافتراضية مسؤولة عن تحويل البايت كود إلى كود خاص بالآلة وهي ضرورية في كل من JDK وJRE. كما أنها قائمة على منصة وتؤدي العديد من الوظائف، بما في ذلك إدارة الذاكرة والأمان. بالإضافة إلى ذلك، يمكن لآلة جافا الافتراضية تشغيل البرامج المكتوبة بلغات برمجة أخرى والمحولة إلى البايت كود لجافا.

غالبًا ما يشار إلى واجهة جافا الأصلية (JNI) في سياق الحديث عن صلتها بآلة جافا الافتراضية. واجهة جافا الأصلية هي إطار عمل برمجي يُمكّن كود جافا الذي يعمل في آلة جافا الافتراضية من التواصل مع (أي أن يستدعي ويُستدعى) التطبيقات المرتبطة بجهاز من الأجهزة ومنصة نظام تشغيل محددة. تسمى هذه التطبيقات التطبيقات الأصلية ويمكن كتابتها غالبًا بلغات أخرى. تُستخدم الطرق الأصلية لنقل التعليمات البرمجية الأصلية المكتوبة بلغات أخرى إلى تطبيقات جافا.

عناصر آلة جافا الافتراضية

تتكون آلة جافا الافتراضية من ثلاثة عناصر رئيسية أو أنظمة فرعية:

  • النظام الفرعي لتحميل الفئات مسؤول عن تحميل ملف فئة جافا (أي "ملف جافا") وربطه وتهيئته، ويُعرف باسم التحميل الديناميكي للفئات.
  • تحتوي مناطق بيانات وقت التشغيل على مناطق الأساليب، وسجلات PC، ومناطق المجموعة، والخيوط البرمجية.
  • يحتوي محرك التنفيذ على مترجم فوري، ومحول برمجي، ومنطقة تجميع البيانات المهملة.
تطوير التطبيقات

ابدأ الآن بتطوير التطبيقات المؤسسية في السحابة

في هذا الفيديو، يناقش الدكتور Peter Haumer كيفية تطوير التطبيقات المؤسسية الحديثة في السحابة الهجينة اليوم من خلال عرض مكونات وممارسات مختلفة، بما في ذلك IBM Z Open Editor وIBM Wazi وZowe. 

ما المقصود ببيئة تشغيل جافا (JRE)؟

بيئة تشغيل جافا، أو JRE، هي مجموعة من الأدوات البرمجية المسؤولة عن تنفيذ برنامج أو تطبيق جافا على نظامك.

تستخدم بيئة تشغيل جافا مساحة الكومة لتخصيص الذاكرة الديناميكي لكائنات جافا. تُستخدم بيئة تشغيل جافا أيضًا في JDB (تصحيح أخطاء جافا).

دور بيئة تشغيل جافا في جافا

إذا كان المبرمج يرغب في تشغيل برنامج جافا باستخدام أمر جافا، فيجب عليه تثبيت بيئة تشغيل جافا. إذا كان يريد تثبيته فقط (وليس تطوير الكود أو تحويله برمجيًا)، فستكون هناك حاجة إلى بيئة تشغيل جافا فقط.

عناصر بيئة تشغيل جافا

إلى جانب آلة جافا الافتراضية، تتكون بيئة تشغيل جافا من العديد من أدوات ومزايا البرامج الداعمة الأخرى لتحقيق أقصى استفادة من تطبيقات جافا لديك.

  • حلول النشر: يُجرى تضمين تقنيات النشر كجزء من عملية تثبيت بيئة تشغيل جافا مثل Java Web Start وملحق جافا الإضافي والتي تبسط عملية تنشيط التطبيقات وتوفر دعمًا متقدمًا لتحديثات جافا المستقبلية.
  • مجموعات التطوير: تحتوي بيئة تشغيل جافا أيضًا على أدوات تطوير مصممة لمساعدة المطورين على تحسين واجهات المستخدم. تتضمن بعض مجموعات الأدوات هذه ما يلي:
    • جافا 2D: هي واجهة برمجة تطبيقات تُستخدم لرسم رسومات ثنائية الأبعاد بلغة جافا. يمكن للمطورين إنشاء واجهات مستخدم غنية ومؤثرات خاصة وألعاب ورسومات متحركة.
    • مجموعة النوافذ التجريدية (AWT): هي واجهة مستخدم رسومية (GUI) تُستخدم لإنشاء الكائنات والأزرار وأشرطة التمرير والنوافذ.
    • Swing: هي واجهة مستخدم رسومية أخرى خفيفة الوزن تستخدم مجموعة غنية من الأدوات لتقديم تخصيصات مرنة وسهلة الاستخدام.
  • مكتبات التكامل: توفر بيئة تشغيل جافا العديد من مكتبات التكامل ومكتبات الفئات لمساعدة المطورين على إنشاء اتصالات بيانات سلسة بين تطبيقاتهم وخدماتهم. تتضمن بعض هذه المكتبات ما يلي:
    • Java IDL: تستخدم نظامًا عامًا لوسطاء الطلبات (CORBA) لدعم الكائنات الموزعة المكتوبة بلغة البرمجة Java.
    • واجهة برمجة تطبيقات اتصال قواعد بيانات جافا (JDBC): توفر أدوات للمطورين لكتابة التطبيقات مع إمكانية الوصول إلى قواعد بيانات العلاقات عن بُعد والملفات المنفصلة وجداول البيانات.
    • واجهة جافا للتسمية والأدلة (JNDI): هي واجهة برمجة وخدمة أدلة تتيح للعملاء إمكانية إنشاء تطبيقات محمولة يمكنها جمع المعلومات من قواعد البيانات باستخدام اصطلاحات التسمية.
  • مكتبات اللغات والأدوات: تتضمن بيئة تشغيل جافا حزم Java.lang. وJava.util. وهي أساسية لتصميم تطبيقات جافا وإصدار الحزمة وإدارتها ومراقبتها. تتضمن بعض هذه الحزم ما يلي
    • إطار عمل المجموعات: وهو بنية موحدة تتكون من مجموعة من الواجهات المصممة لتحسين تخزين بيانات التطبيقات ومعالجتها.
    • أدوات التزامن: هي حزمة إطار العمل فائقة الإمكانات تضم أدوات ترابط فائقة الأداء.
    • واجهة برمجة تطبيقات التفضيلات: هي واجهة برمجة تطبيقات خفيفة الوزن وثابتة عبر المنصات تتيح لعدة مستخدمين على جهاز واحد تحديد مجموعة التفضيلات الخاصة بهم من التطبيقات.
    • التسجيل: تنتج تقارير السجل—مثل حالات فشل الأمان وأخطاء التكوين ومشكلات الأداء—لمزيد من التحليل.
    • أرشيف جافا (JAR): هو تنسيق ملفات غير قائم على منصة يتيح تجميع ملفات متعددة بتنسيق ملفات أرشيف جافا، ما يحسن سرعة التنزيل بشكل كبير ويقلل من حجم الملفات.

ما المقصود بمجموعة تطوير جافا (JDK)؟

مجموعة تطوير جافا، أو JDK، هي مجموعة تطوير برمجيات تمثل مجموعة شاملة في بيئة تشغيل جافا. وتُعد العنصر الأساسي الذي يتيح تطوير تطبيقات جافا وتطبيقات جافا المصغرة. وهي خاصة بالمنصات، لذلك هناك حاجة إلى مثبتات منفصلة لكل نظام تشغيل (على سبيل المثال، Mac وUnix وWindows).

دور مجموعة تطوير جافا في جافا

تحتوي مجموعة تطوير جافا على جميع الأدوات المطلوبة لإجراء تحويل برمجي للبرامج المطورة باستخدام منصة جافا وتصحيح أخطائها وتشغيلها. (تجدر الإشارة إلى أنه يمكن أيضًا تشغيل برامج جافا باستخدام سطر الأوامر).

عناصر مجموعة تطوير جافا

تتضمن مجموعة تطوير جافا جميع أدوات جافا والملفات التنفيذية والثنائية اللازمة لتشغيل برامج جافا. يتضمن ذلك بيئة تشغيل جافا، والمحول البرمجي، ومصحح الأخطاء، والأرشيف، والأدوات الأخرى المستخدمة في عملية تطوير جافا.

مقارنة بين Java SE وJava EE

مصطلح جافا مرادف لإصدار جافا القياسي (Java SE) أو جافا الأساسي. تشير المصطلحات الثلاثة إلى مواصفات جافا الأساسية التي تتضمن عملية تحديد الأنواع والكائنات. من ناحية أخرى، توفر Java EE واجهات برمجة تطبيقات وتُستخدم عادةً لتشغيل تطبيقات أكبر. يركز محتوى هذه المدونة على Java SE.

كيف تعمل كل من JVM وJRE وJDK معًا

دعونا أولاً نلقِ نظرة على كيفية عمل العناصر الأساسية الثلاثة لجافا معًا، وبعد ذلك يمكننا تناول أوجه الاختلاف بينها. يوفر المخطط التالي صورة لكيفية توافق JVM وJRE وJDK معًا في بيئة جافا.

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

مقارنة بين JVM وJRE وJDK

في الفيديو التالي، يشرح Jamil Spain كيفية ارتباط JRE وJDK:

مقارنة بين JDK وJRE وJVM: أوجه الاختلاف الرئيسية

والآن، بالنسبة إلى أوجه الاختلاف:

  • JDK هي منصة التطوير، بينما JRE مخصصة للتنفيذ.
  • آلة جافا الافتراضية هي أساس أو قلب لغة البرمجة جافا، وتضمن أن يكون مصدر الرمز للبرامج غير مرتبط بمنصة معينة.
  • JVM مدمجة في كل من JDK وJRE—ولن تعمل برامج جافا من دونها.

التقنيات التكميلية

توجد العديد من التقنيات التكميلية التي يمكن استخدامها لتحسين JVM أو JRE أو JDK. ومن بين التقنيات الأكثر استخدامًا ما يلي:

  • يُعد المحول البرمجي في الحال (JIT) جزءًا من آلة جافا الافتراضية ويعمل على تحسين تحويل البايت كود إلى كود الآلة. وهو يحدد البايت كود المماثل لتحويله برمجيًا في الحال، ما يقلل من المدة الإجمالية اللازمة لتحويل البايت كود إلى كود الآلة.
  • Javac، وهي أداة تكميلية أخرى، تتمثل في محول برمجي يقرأ تعريفات جافا ويحولها إلى بايت كود يمكن تشغيله على آلة جافا الافتراضية.
  • يحول Javadoc وثائق واجهة برمجة التطبيقات من مصدر الرمز بلغة جافا إلى HTML. ويُعد هذا مفيدًا عند إنشاء وثائق قياسية بلغة HTML.

آلة جافا الافتراضية وتقنية الحاويات

تُستخدم آلة جافا الافتراضية (JVM) لإنشاء—كما هو واضح من اسمها—الأجهزة الافتراضية (VMs). الأجهزة الافتراضية هي خوادم تسمح بتشغيل تطبيقات متعددة على الأجهزة المادية نفسها من دون التأثير في بعضها. وهذا يوفر استخدامًا أفضل للموارد ويجعل توسيع نطاقها أسهل بكثير وأقل تكلفة من البنية التحتية التقليدية. يمكن أيضًا التخلص من الأجهزة الافتراضية بسهولة بسبب استقلاليتها. عندما لم تعد بحاجة إلى التطبيق، يمكنك ببساطة تعطيل الجهاز الافتراضي.

ترتقي الحاويات بهذا التجريد وتعمل على إضفاء طابع افتراضي على نواة نظام التشغيل. يؤدي غياب نظام التشغيل إلى جعل الحاويات أكثر خفة وسرعة ومرونة من الأجهزة الافتراضية.

جافا، وJVM، وJDK، وJDK و®IBM

بالنسبة إلى العديد من المؤسسات، تظل جافا جزءًا حيويًا من عملية تطوير التطبيقات وتوفر أساسًا متينًا عند إنشاء حلول قابلة للنقل وللتوسع. ويمكنها أيضًا أداء دور رئيسي في عملية تحديث التطبيقات في رحلتها إلى السحابة.

اتخذ الخطوة التالية من خلال استكشاف حل OpenJDK وIBM Runtimes for Business، والذي يوفر دعمًا تجاريًا جديرًا بالثقة وميسور التكلفة لتنفيذ تطبيقات جافا ومراقبتها وإدارتها.

حلول ذات صلة
خدمة تطبيقات IBM Enterprise لـ Java

خدمة مُدارة بالكامل ومستأجر واحد لتطوير تطبيقات Java وتسليمها.

استكشف تطبيقات Java
حلول عمليات التطوير

استخدم أدوات وبرمجيات عمليات التطوير لإنشاء تطبيقات السحابة الأصلية ونشرها وإدارتها عبر أجهزة وبيئات متعددة.

استكشف حلول عمليات التطوير
خدمات تطوير تطبيقات المؤسسات

إن تطوير تطبيقات السحابة يعني البناء مرة واحدة، والتكرار بسرعة، والنشر في أي مكان.

خدمات تطوير التطبيقات
اتخِذ الخطوة التالية

تقدِّم خدمات استشارات تطوير التطبيقات من IBM Cloud توجيهات الخبراء وحلولًا مبتكرة لتبسيط استراتيجيتك السحابية. تعاون مع خبراء IBM في مجال السحابة والتطوير لتحديث تطبيقاتك وتوسيع نطاقها وتسريعها، ما يحقق النتائج التحويلية لأعمالك.

استكشف خدمات تطوير التطبيقات ابدأ البناء باستخدام IBM Cloud مجانًا