ما المقصود ببيئة Java Runtime Environment (JRE)؟

أشخاص يعملون في مكتب مفتوح ومزدحم

ما المقصود بـ JRE؟

تُعد Java Runtime Environment، أو JRE، طبقة برمجية تعمل فوق نظام تشغيل الحاسوب، وتوفر مكتبات الفئات والموارد الأخرى التي يحتاجها برنامج Java معين لتشغيلها.

تُعد JRE واحدًا من ثلاثة عناصر مترابطة لتطوير وتشغيل برامج Java. والعنصران الآخران هما كما يلي:

  • تُعد مجموعة أدوات تطوير Java، أو JDK، مجموعة من الأدوات لتطوير تطبيقات Java. يختار المطورون مجموعات JDK حسب نسخة Java وحسب الحزمة أو الإصدار، Java Enterprise Edition (Java EE)، أو Java Special Edition (Java SE) أو Java Mobile Edition (Java ME). تتضمن كل مجموعة JDK دائمًا JRE متوافقًا لأن تشغيل برنامج Java يُعد جزءًا من عملية تطوير برنامج Java.

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

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

يمكنك تنزيل JDK، بما في ذلك JRE متوافقة، من Oracle.

كيف تعمل JRE؟

يتفاعل كل من JDK وJRE مع بعضهما لإنشاء بيئة وقت تشغيل مستدامة تتيح التنفيذ السلس للتطبيقات المعتمدة على Java في أي نظام تشغيل تقريبًا. وتشكل هذه السمات بنية وقت تشغيل JRE:

ClassLoader

من خلال Java ClassLoader، يتم تحميل جميع الفئات اللازمة لتشغيل برنامج Java بشكل ديناميكي. ونظرًا لأن فئات Java يتم تحميلها في الذاكرة فقط عند الحاجة إليها، فإن بيئة JRE تستخدم ClassLoaders لأتمتة هذه العملية عند الطلب.

أداة التحقق من الشيفرة البايتية

يضمن محقق البايت كود تنسيق كود Java وصحته قبل أن يتم تمريره إلى المُفسِّر. إذا انتهك الكود سلامة النظام أو حقوق الوصول، ستُعتبر الفئة تالفة ولن يتم تحميلها.

مُفسِّر

بعد تحميل البايت كود بنجاح، يُنشئ مُفسِّر Java نسخة من الآلة الافتراضية لجافا (JVM) والتي تتيح إمكانية تشغيل برنامج Java بصورة محلية على الجهاز الأساسي.

مما تتكون JRE؟

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

حلول النشر

يتضمن تثبيت JRE تقنيات النشر مثل Java Web Start وJava Plug-in، التي تُسهل تنشيط التطبيقات وتوفر دعمًا متقدمًا للتحديثات المستقبلية لـ Java.

مجموعات أدوات التطوير

تحتوي JRE أيضًا على مجموعات أدوات مصممة لمساعدة المطورين على تحسين واجهة المستخدم الخاصة بهم. تتضمن بعض مجموعات الأدوات هذه ما يلي:

  • Java 2D: واجهة برمجة تطبيقات (API) تُستخدم لرسم الرسومات ثنائية الأبعاد بلغة Java. ويمكن للمطورين إنشاء واجهات مستخدم ثرية، ومؤثرات خاصة، وألعاب، ورسوم متحركة.

  • Abstract Window Toolkit (AWT): واجهة مستخدم رسومية (GUI) تُستخدم لإنشاء الكائنات والأزرار وأشرطة التمرير والنوافذ.

  • Swing: واجهة مستخدم رسومية أخرى خفيفة تستخدم مجموعة غنية من العناصر لتقديم تخصيصات مرنة.

مكتبات التكامل

توفر بيئة Java Runtime Environment عدة مكتبات تكامل لمساعدة المطورين في إنشاء روابط بيانات سلسة بين تطبيقاتهم وخدماتهم. تتضمن بعض هذه المكتبات ما يلي:

  • Java IDL (CORBA): تستخدم بنية طلب الكائنات المشتركة لدعم الكائنات الموزعة المكتوبة بلغة برمجة Java.

  • واجهة برمجة تطبيقات Java Database Connectivity (JDBC): توفر أدوات للمطورين لكتابة التطبيقات مع إمكانية الوصول إلى قواعد بيانات العلاقات البعيدة، والملفات المسطحة، وجداول البيانات.

  • واجهة جافا للتسمية والدليل (JNDI): واجهة برمجة وخدمة دليل تساعد العملاء على إنشاء تطبيقات محمولة يمكنها جلب المعلومات من قواعد البيانات باستخدام اصطلاحات التسمية.

مكتبات اللغات ومرفق الخدمات

متضمن مع حزم JRE are java.lang. وjava.util. الأساسية لتصميم تطبيقات جافا، وإصدار الحزم، وإدارتها، ومراقبتها. وتتضمن بعض هذه الحزم:

  • Collections Framework: بنية موحدة تتكون من مجموعة من الواجهات المصممة لتحسين تخزين ومعالجة بيانات التطبيقات.

  • Concurrency Utilities: حزمة إطار عمل قوية تحتوي على أدوات معالجة متعددة الخيوط عالية الأداء.

  • Preferences API: واجهة برمجة تطبيقات خفيفة الوزن ومتعددة الأنظمة الأساسية تتيح لمستخدمين متعددين على الكمبيوتر نفسه إمكانية تحديد مجموعاتهم الخاصة من تفضيلات التطبيقات.

  • Logging: حزمة تنتج تقارير سجل، مثل فشل الأمان، وأخطاء التكوين، ومشاكل الأداء، لمزيد من التحليل.

  • Java Archive (JAR): تنسيق ملف مستقل عن المنصة يتيح تجميع ملفات متعددة بتنسيق JAR، ما يحسن سرعة التنزيل بشكل كبير ويقلل حجم الملف.