مكتبة فئات جافا

مكتبة فئات جافا ( JCL ) هي مجموعة من المكتبات القابلة للتحميل ديناميكيًا ، والتي يمكن للغات آلة جافا الافتراضية (JVM) استدعاؤها أثناء التشغيل . وهي المكتبة القياسية لجافا ولغات JVM الأخرى، ولذلك تُسمى أحيانًا مكتبة جافا القياسية . [ 1 ] ولأن منصة جافا لا تعتمد على نظام تشغيل محدد ، لا يمكن للتطبيقات الاعتماد على أي من المكتبات الأصلية للمنصة. بدلاً من ذلك، توفر منصة جافا مجموعة شاملة من مكتبات الفئات القياسية، التي تحتوي على الوظائف الشائعة في أنظمة التشغيل الحديثة. منذ جافا 9، يمكن الوصول إلى مكتبة فئات جافا من خلال مسار الوحدة النمطية باستخدام نظام وحدات منصة جافا .

تؤدي لغة التحكم في جافا (JCL) ثلاثة أغراض داخل جهاز جافا الافتراضي (JVM):

يستخدم هذا النظام مساحات الأسماء java.*و javax.*و jdk.*. قد توجد بعض الفئات المضمنة في مساحات أسماء مثل sun.*أو com.sun.*(بالنسبة لشركة صن مايكروسيستمز )، ولكنها لا تُعتبر جزءًا من المكتبة القياسية. javaxارتبطت مساحة الاسم بشكل أساسي بمنصة جافا، الإصدار المؤسسي ، كحزم إضافية لمكتبة جافا القياسية.

التنفيذ والتكوين

تُكتب لغة JCL بالكامل تقريبًا بلغة جافا، باستثناء الأجزاء التي تحتاج إلى وصول مباشر إلى الأجهزة ونظام التشغيل (مثل الإدخال/الإخراج أو رسومات الصور النقطية )، والتي تُكتب بلغة C++ . [ 2 ] تستخدم الفئات التي تتيح الوصول إلى هذه الوظائف عادةً أغلفة واجهة جافا الأصلية للوصول إلى واجهات برمجة تطبيقات نظام التشغيل .

يُخزَّن معظم كود JCL في ملف أرشيف جافا واحد يُسمى " rt.jar "، وهو مُضمَّن في توزيعات JRE و JDK . توجد مكتبة فئات جافا ( rt.jar ) في مسار فئات التمهيد الافتراضي [ 3 ] ، ولا يلزم وجودها في مسار الفئات المُعلن للتطبيق. يستخدم وقت التشغيل مُحمِّل فئات التمهيد للعثور على JCL.

أدى نظام وحدات جافا (جزء من إصدار جافا 9 ) إلى كسر ملف JAR المتجانس " rt.jar " وقام بتقسيم JCL نفسه إلى عدة وحدات مع تبعيات محددة. [ 4 ]

المطابقة

يجب أن يجتاز أي تطبيق للغة جافا اختبارات مجموعة أدوات توافق تقنية جافا من أجل الامتثال، والتي تتضمن اختبارات JCL.

الميزات الرئيسية

يتم الوصول إلى ميزات JCL من خلال الفئات المتوفرة في الحزم .

الحزم خارج نطاق الاسم الرئيسي

تُضمّن لغة جافا بعض الحزم خارج نطاقات الأسماء الرئيسية ( java.*، javax.*و، و jdk.*). ومن بين هذه الحزم:

حزم التنفيذ

[ 10 ] [ 11 ] وحزم أخرى هي جميعها جزء من وحدة تسمى [ 12 ] . sun.*تحتوي هذه الوحدة على حزم ليست جزءًا من مكتبة sun.misc.UnsafeJava القياسية ولكنها مضمنة كجزء من تطبيق Java.com.sun.*jdk.unsupported

الترخيص

التراخيص السابقة

قبل إصدار OpenJDK، كان JDK يعتمد على ترخيص احتكاري .

بعد وعدها بإصدار حزمة تطوير جافا (JDK) قابلة للبناء بالكامل ، تعتمد على شفرة برمجية مفتوحة المصدر ومجانية بالكامل تقريبًا، في النصف الأول من عام 2007، [ 13 ] أصدرت شركة صن الشفرة المصدرية الكاملة لمكتبة الفئات بموجب رخصة جنو العمومية (GPL) في 8 مايو 2007، باستثناء بعض الأجزاء المحدودة التي رخصتها صن من جهات خارجية لم ترغب في إصدار شفرتها البرمجية بموجب رخصة مفتوحة المصدر. [ 14 ] كان هدف صن هو استبدال الأجزاء التي لا تزال احتكارية ومغلقة المصدر بتطبيقات بديلة، وجعل مكتبة الفئات مجانية ومفتوحة المصدر بالكامل.

حتى ديسمبر 2010، كانت شركة صن ثم أوراكل توفران الجزء المتبقي من JDK على شكل ملفات ثنائية [ 15 ] ، والتي كانت مطلوبة لبناء JDK ولكنها غير ضرورية لتشغيله. اعتبارًا من مايو 2007 ، الجزء الوحيد من مكتبة الفئات الذي ظل ملكية خاصة ومغلق المصدر (4% اعتبارًا من مايو 2007) بالنسبة لـ OpenJDK 7، [ 16 ] وأقل من 1% اعتبارًا من مايو 2008 وكان OpenJDK 6 [ 17 ] [ 18 ] هو تطبيق SNMP [ 19 ] . [ 20 ]

منذ الإصدار الأول في مايو 2007، قامت شركة صن، بمساعدة المجتمع، بإصدار جميع التعليمات البرمجية المعقدة تقريبًا كمصدر مفتوح أو استبدالها ببدائل مفتوحة المصدر:

إصدار مفتوح المصدر

ابتداءً من ديسمبر 2010، تم استبدال جميع ما يسمى بالمكونات الثنائية ببدائل مفتوحة المصدر ، مما جعل JDK بالكامل مفتوح المصدر. [ 30 ]

تطبيقات بديلة

تُعد مكتبة GNU Classpath مكتبة الفئات الرئيسية الأخرى المجانية للغة جافا. وعلى عكس التطبيقات الأخرى، فهي تُنفذ مكتبة الفئات فقط، وتستخدمها العديد من بيئات تشغيل جافا المجانية (مثل Kaffe و SableVM و JamVM ).

كانت أباتشي هارموني مكتبة فئات برمجية مجانية أخرى. وكان هدفها تنفيذ الأجزاء الأخرى من حزمة جافا ( الآلة الافتراضية ، والمترجم ، والأدوات الأخرى المطلوبة لأي تطبيق جافا ).

انظر أيضاً

مراجع

  1. هويسمان، م.؛ جاكوبس، ب.ب.ف.؛ فان دن بيرغ، ج. (1999). "دراسة حالة في التحقق من مكتبة الفئات: فئة المتجهات في جافا" . FernUniversität : 40. تم الاطلاع عليه في 6 أكتوبر 2025 .
  2. "مبني على مصادر OpenJDK" . OpenJDK . تم الاطلاع عليه بتاريخ 23 أكتوبر 2021 .
  3. "كيفية العثور على الفئات" . شركة أوراكل . مؤرشف من الأصل بتاريخ 25 أبريل 2009. تم الاطلاع عليه بتاريخ 5 ديسمبر 2015 .
  4. "ملخص وحدة JDK" . شركة أوراكل . 23 أكتوبر 2015. مؤرشف من الأصل بتاريخ 8 ديسمبر 2015. تم الاطلاع عليه بتاريخ 29 نوفمبر 2015 .
  5. "netspace.javascript (Java SE 25 & JDK 25)" . docs.oracle.com . شركة أوراكل . تم الاطلاع عليه بتاريخ 10 أكتوبر 2025 .
  6. "org.ietf.jgss (Java SE 25 & JDK 25)" . docs.oracle.com . شركة أوراكل . تم الاطلاع عليه بتاريخ 10 أكتوبر 2025 .
  7. "java.corba (Java SE 10 & JDK 10)" . docs.oracle.com . شركة أوراكل . تم الاطلاع عليه بتاريخ 10 أكتوبر 2025 .
  8. "org.w3c.dom (Java SE 25 & JDK 25)" . docs.oracle.com . شركة أوراكل . تم الاطلاع عليه بتاريخ 10 أكتوبر 2025 .
  9. "org.xml.sax (Java SE 25 & JDK 25)" . docs.oracle.com . شركة أوراكل . تم الاطلاع عليه بتاريخ 10 أكتوبر 2025 .
  10. بن إيفانز (4 مايو 2020). "الفئة غير الآمنة: غير آمنة بأي سرعة" . blogs.oracle.com . شركة أوراكل.
  11. شركة أوراكل. "الأسئلة الشائعة - حزم صن: لماذا لا ينبغي للمطورين كتابة برامج تستدعي حزم صن" . oracle.com . شركة أوراكل . تم الاطلاع عليه بتاريخ 22 أبريل 2026 .
  12. "jdk.unsupported" . cr.openjdk.org . OpenJDK . تم الاطلاع عليه بتاريخ 10 أكتوبر 2025 .
  13. "جافا المجانية والمفتوحة المصدر - الأسئلة الشائعة" . sun.com . مايو 2007. مؤرشف من الأصل في 22 مايو 2007. تم الاطلاع عليه بتاريخ 27 يونيو 2024 .
  14. ريتش غرين (8 مايو 2007). "Open JDK هنا!" . صن مايكروسيستمز . مؤرشف من الأصل في 7 فبراير 2012. تم الاطلاع عليه في 25 نوفمبر 2011 .
  15. "OpenJDK Binary Plugs" . شركة صن مايكروسيستمز . 8 مايو 2007. مؤرشف من الأصل في 26 أغسطس 2012. تم الاطلاع عليه في 25 نوفمبر 2011 .
  16. فيتزسيمونز، توماس (18 مايو 2007). "خطط OpenJDK" . تم الاطلاع عليه بتاريخ 22 مايو 2007 .
  17. أنجيل، ليليان (13 مارس 2008). "OpenJDK سيحل محل IcedTea في فيدورا 9" . تم الاطلاع عليه بتاريخ 5 أبريل 2008 .{{cite web}}: CS1 maint: deprecated archiveal service ( link )
  18. ويد، كارستن (13 مارس 2008). "OpenJDK في فيدورا 9!" . redhatmagazine.com. مؤرشف من الأصل في 21 أبريل 2008. تم الاطلاع عليه في 5 أبريل 2008. قام توماس فيتزسيمونز بتحديث صفحات مصدر ملاحظات إصدار فيدورا 9 لتوضيح أن فيدورا 9 ستأتي مع OpenJDK 6 بدلاً من تطبيق IcedTea لـ OpenJDK 7. من المقرر إصدار فيدورا 9 (Sulphur) في مايو 2008.
  19. هيرون، ديفيد (4 أكتوبر 2007). "خطط OpenJDK" . مؤرشف من الأصل في 11 أكتوبر 2007. تم الاطلاع عليه في 9 أكتوبر 2007 .
  20. ١ ٢ "تم نشر مصدر OpenJDK 6 b10" . ٣٠ مايو ٢٠٠٨. مؤرشف من الأصل في ١٨ يونيو ٢٠٠٩. تم الاطلاع عليه في ١ يونيو ٢٠٠٨ .
  21. "صفحة مشروع محرك الصوت" . مؤرشفة من الأصل بتاريخ 16-05-2007 . تم الاطلاع عليها بتاريخ 19-05-2007 .
  22. "Gervill – Software Synthesizer" . تم الاطلاع عليه بتاريخ 2008-06-01 .{{cite web}}: CS1 maint: deprecated archiveal service ( link )
  23. "تمت إضافة Crypto إلى OpenJDK" . 27-09-2007. مؤرشف من الأصل بتاريخ 25-12-2007 . تم الاطلاع عليه بتاريخ 07-10-2007 .
  24. "صفحة مشروع مُكبِّر الخطوط" . مؤرشف من الأصل بتاريخ 10-06-2015 . تم الاطلاع عليه بتاريخ 19-05-2007 .
  25. 1 2 3 "صفحة مشروع Java2D" . مؤرشفة من الأصل بتاريخ 16-05-2007 . تم الاطلاع عليها بتاريخ 19-05-2007 .
  26. "محول خطوط Freetype إلى صور نقطية" . 7 أغسطس 2007. مؤرشف من الأصل في 7 يناير 2009. تم الاطلاع عليه في 24 نوفمبر 2007 .
  27. "مرحباً بكم في مشروع PhoneME" . مؤرشف من phoneme.dev.java.net/، النسخة الأصلية بتاريخ 10-06-2007.{{cite web}}: تحقق من |url=القيمة ( مساعدة )
  28. "صفحة مشروع مُحَوِّل الرسومات النقطية" . مؤرشفة من الأصل بتاريخ 16-05-2007 . تم الاطلاع عليها بتاريخ 19-05-2007 .
  29. "لغة جافا سكريبت مُقيدة ولا يوجد دعم لملحقات جافا سكريبت" . IcedTea . 11 مارس 2008. مؤرشف من الأصل في 27 سبتمبر 2008. تم الاطلاع عليه في 1 يونيو 2008. ملخص التغيير: لم تعد جافا سكريبت مُقيدة، لكننا ما زلنا بحاجة إلى دعم LiveConnect.
  30. كيلي أوهير (ديسمبر 2010). "إزالة منطق التوصيلات الثنائية لـ OpenJDK7 وOpenJDK6" . شركة أوراكل . مؤرشف من الأصل بتاريخ 7 أبريل 2022. تم الاطلاع عليه بتاريخ 25 نوفمبر 2011 .