جافا (منصة برمجية)

TuxGuitar ، برنامج يعمل بتقنية جافا

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

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

أحدث إصدار

أحدث إصدار هو Java  26 الذي تم إصداره في مارس 2026.

يُعدّ Java 25 ، أحدث إصدار مدعوم طويل الأمد (LTS) والذي صدر في سبتمبر 2025، أحد الإصدارات القليلة المدعومة طويلة الأمد التي لا تزال مدعومة، وصولاً إلى Java 8 LTS. انتهى الدعم الموسّع من Oracle لـ Java 6 في ديسمبر 2018. [ 10 ]  

باعتبارها منصة مفتوحة المصدر، تمتلك جافا العديد من الموزعين، بما في ذلك أمازون ، وآي بي إم ، وأزول سيستمز ، وأدوبت أوبن جيه دي كيه . تشمل هذه التوزيعات أمازون كوريتو، وزولو، وأدوبت أوبن جيه دي كيه، وليبريكا. أما أوراكل، فهي توزع جافا 8، وتوفر أيضًا إصدارات أخرى مثل جافا 11، وكلاهما يدعم حاليًا إصدارات طويلة الأمد. وتوصي أوراكل (وغيرها) بشدة بإزالة الإصدارات الأقدم من جافا 8، [ 11 ] نظرًا للمخاطر الجسيمة الناجمة عن مشكلات أمنية لم تُحل بعد. [ 12 ] [ 13 ] [ 14 ]

بما أن Java  9 (وكذلك الإصدارات 10 و12-16 و18-20 و22-24) لم تعد مدعومة، فإن Oracle تنصح مستخدميها "بالانتقال فورًا" إلى إصدار مدعوم.

أصدرت شركة أوراكل آخر تحديث عام مجاني للاستخدام التجاري لإصدار Java 8 LTS القديم في يناير 2019، وستواصل دعم Java 8 بتحديثات عامة للاستخدام الشخصي إلى أجل غير مسمى.   

منصة

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

تتألف منصة جافا من عدة برامج، يُساهم كل منها بجزء من إمكانياتها الشاملة. على سبيل المثال، يُوفّر مُصرّف جافا ، الذي يُحوّل شيفرة جافا المصدرية إلى بايت كود جافا (لغة وسيطة لآلة جافا الافتراضية)، كجزء من حزمة تطوير جافا (JDK). أما بيئة تشغيل جافا (JRE)، التي تُكمّل آلة جافا الافتراضية بمُصرّف فوري (JIT) ، فتُحوّل البايت كود الوسيط إلى شيفرة الآلة الأصلية أثناء التشغيل. كما تتضمن منصة جافا مجموعة واسعة من المكتبات.

المكونات الأساسية في المنصة هي مترجم لغة جافا، والمكتبات، وبيئة التشغيل التي يتم فيها تنفيذ بايت كود جافا الوسيط وفقًا للقواعد المنصوص عليها في مواصفات الآلة الافتراضية.

مجالات التطبيق

تستهدف المنصات المختلفة فئات مختلفة من الأجهزة ومجالات التطبيقات :

جافا إس إي

منصة جافا، الإصدار القياسي (Java SE) هي منصة حوسبة ، ومعيار تقني لتشغيل التطبيقات على منصات مستقلة مدعومة بلغة جافا، وبالتالي فهي عبارة عن شفرة قابلة للنقل لبيئات سطح المكتب والخوادم . [ 15 ] [ 16 ] كانت Java SE تُعرف سابقًا باسم منصة جافا 2، الإصدار القياسي (J2SE).

تستخدم هذه المنصة لغة برمجة جافا ، وهي جزء من عائلة منصات برمجيات جافا. تُعرّف جافا SE مجموعة من واجهات برمجة التطبيقات العامة ، مثل واجهات برمجة تطبيقات جافا لمكتبة فئات جافا ، كما تتضمن مواصفات لغة جافا ومواصفات آلة جافا الافتراضية . [ 17 ] يُعد OpenJDK التطبيق المرجعي الرسمي منذ الإصدار 7. [ 18 ] [ 19 ] [ 20 ]

جاكرتا إي إي

جاكارتا إي إي ، المعروفة سابقًا باسم منصة جافا، الإصدار المؤسسي (جافا إي إي) ومنصة جافا 2، الإصدار المؤسسي (جيه 2 إي إي)، هي مجموعة من المواصفات التي توسع جافا إس إي [ 21 ] بمواصفات لميزات المؤسسات مثل الحوسبة الموزعة وخدمات الويب . [ 22 ] يتم تشغيل تطبيقات جاكارتا إي إي على بيئات تشغيل مرجعية ، والتي يمكن أن تكون خدمات مصغرة أو خوادم تطبيقات ، تتولى معالجة المعاملات والأمان وقابلية التوسع والتزامن وإدارة المكونات التي تنشرها.

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

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

يُتيح استخدام لغة البايت كود كلغة وسيطة تشغيل برامج جافا على أي منصة تتوفر عليها آلة افتراضية. وبفضل استخدام مُترجم JIT، تعمل تطبيقات جافا، بعد تأخير قصير أثناء التحميل وبعد أن تُصبح جاهزة للاستخدام بفضل ترجمتها الكاملة أو شبه الكاملة باستخدام JIT، بسرعة تُقارب سرعة البرامج الأصلية. [ 23 ] [ 24 ] [ 25 ] ومنذ إصدار JRE 1.2، يتضمن تطبيق JVM من Sun مُترجمًا فوريًا بدلًا من مُفسِّر.

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

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

مجموعة تطوير جافا (JDK) هي مجموعة أدوات لتطوير البرمجيات لتطوير تطبيقات منصة جافا . [ 26 ]

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

تُطبّق هذه الحزمة مواصفات لغة جافا (JLS) ومواصفات آلة جافا الافتراضية (JVMS)، وتُوفّر الإصدار القياسي (SE) من واجهة برمجة تطبيقات جافا (API). وهي مُشتقة من OpenJDK، وهي حزمة برمجية مجتمعية تُشرف عليها شركة أوراكل. [ 27 ] تُوفّر هذه الحزمة برمجيات للعمل مع تطبيقات جافا. ومن أمثلة البرمجيات المُضمّنة: آلة جافا الافتراضية، ومُترجم، وأدوات مراقبة الأداء، ومُصحّح الأخطاء، وغيرها من الأدوات التي تُعتبرها أوراكل مُفيدة لمُبرمجي جافا.

تُصدر أوراكل الإصدار الحالي من البرنامج بموجب ترخيص أوراكل المجاني (NFTC). وتُصدر أوراكل ملفات تنفيذية لبنية x86-64 لأنظمة التشغيل ويندوز وماك أو إس ولينكس ، ولبنية aarch64 لأنظمة ماك أو إس ولينكس. وكانت الإصدارات السابقة تدعم نظام التشغيل أوراكل سولاريس وبنية SPARC .

يُعرف تطبيق Oracle الأساسي لنظام JVMS باسم HotSpot .

بيئة تشغيل جافا

بيئة تشغيل جافا (JRE) التي أصدرتها أوراكل هي توزيعة برمجية مجانية تحتوي على آلة جافا افتراضية مستقلة (HotSpot) ، ومكتبة جافا القياسية ( مكتبة فئات جافا )، وأداة تهيئة، وملحق للمتصفح (حتى توقف دعمها في JDK 9). وهي بيئة جافا الأكثر شيوعًا على أجهزة الكمبيوتر الشخصية ، سواءً المحمولة أو المكتبية . أما الهواتف المحمولة، بما فيها الهواتف العادية والهواتف الذكية القديمة المزودة بآلة جافا افتراضية ، فمن المرجح أن تحتوي على آلة جافا افتراضية مصممة لتشغيل التطبيقات التي تستهدف إصدار Micro من منصة جافا. في المقابل، من المرجح أن معظم الهواتف الذكية الحديثة وأجهزة الكمبيوتر اللوحية وغيرها من أجهزة الكمبيوتر المحمولة التي تشغل تطبيقات جافا، تعمل بنظام التشغيل أندرويد ، الذي يتضمن آلة افتراضية مفتوحة المصدر غير متوافقة مع مواصفات آلة جافا الافتراضية. (بدلاً من ذلك، تستخدم أدوات تطوير أندرويد من جوجل برامج جافا كمدخلات وتُخرج بايت كود دالفيك ، وهو تنسيق الإدخال الأصلي للآلة الافتراضية على أجهزة أندرويد). كان آخر إصدار من تحديث المسار الحرج لبيئة تشغيل جافا (JRE) مع اتفاقية مكتبة فئات أوراكل الأساسية (BCL) [ 28 ] هو 8u201، وكان آخر إصدار من تحديث مجموعة التصحيحات بنفس الترخيص هو 8u202. [ 29 ] [ 30 ] وكان آخر تطبيق لبيئة تشغيل جافا من أوراكل، بغض النظر عن نظام الترخيص الخاص به، هو 9.0.4. [ 31 ] منذ منصة جافا SE 9، تم تجميع المنصة بأكملها في وحدات . [ 32 ] يسمح تصميم تطبيقات جافا SE المعياري للمطورين بتجميع تطبيقاتهم مع جميع الوحدات التي يستخدمونها، بدلاً من الاعتماد فقط على وجود تطبيق جافا SE مناسب في جهاز المستخدم. [ 33 ] [ 34 ] [ 35 ] [ 36 ]

مكتبات الفئات

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

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

اللغات

يشير مصطلح "جافا" عادةً إلى لغة برمجة جافا المصممة للاستخدام مع منصة جافا. تقع لغات البرمجة عادةً خارج نطاق مصطلح "المنصة"، على الرغم من أن لغة برمجة جافا كانت تُعتبر جزءًا أساسيًا من منصة جافا قبل إصدار جافا  7. ولذلك، كان يُنظر إلى اللغة وبيئة التشغيل كوحدة واحدة. مع ذلك، بُذلت جهود في  مواصفات جافا 7 لتوضيح التمييز بين لغة جافا وآلة جافا الافتراضية ككيانين منفصلين، بحيث لم يعودا يُعتبران وحدة واحدة. [ 37 ]

أنتجت جهات خارجية العديد من المترجمات أو المفسرات التي تستهدف آلة جافا الافتراضية (JVM). بعضها مخصص للغات برمجة موجودة، بينما البعض الآخر مخصص لإضافات إلى لغة جافا. وتشمل هذه:

  • BeanShell – لغة برمجة نصية خفيفة الوزن للغة Java [ 38 ] (انظر أيضًا JShell )
  • سيلون – لغة برمجة كائنية التوجه، ذات كتابة قوية وثابتة مع التركيز على عدم قابلية التغيير (ولم تعد تتم صيانتها منذ عام 2023)
  • كلوجر – لهجة حديثة وديناميكية ووظيفية من لغة ليسب على منصة جافا
  • جوسو – لغة برمجة عامة الأغراض تعتمد على JVM، تم إصدارها بموجب رخصة أباتشي 2.0
  • Groovy – لغة برمجة ثابتة وديناميكية متوافقة تمامًا مع لغة Java، وتتمتع بميزات من لغات Python وRuby وPerl وSmalltalk
  • JRuby – مترجم لغة روبي
  • جيثون - مترجم لغة بايثون
  • Kotlin – لغة لـ JVM (وغير JVM، على سبيل المثال سطح المكتب و iOS ) مع قابلية تشغيل كاملة للغة Java (لغة Google المفضلة لنظام Android، JVM الخاص بها، على Java، والتي لا تزال مدعومة هناك وقد روجت لها سابقًا)
  • راينو – مترجم جافا سكريبت
  • سكالا – لغة برمجة متعددة الأنماط ذات بنية غير متوافقة مع جافا، مصممة لتكون "جافا أفضل"

منصات مماثلة

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

تضمنت بيئة .NET لغةً شبيهةً بلغة جافا، سُميت في البداية J++ ، ثم Visual J#، وكانت غير متوافقة مع مواصفات جافا. توقف تطويرها عام 2007، وانتهى دعمها عام 2015.

أداء

تمنح مواصفات JVM المطورين مرونة كبيرة فيما يتعلق بتفاصيل التنفيذ. منذ إصدار Java 1.3، تتضمن بيئة تشغيل Java (JRE) من Oracle جهاز JVM يُسمى HotSpot، وقد صُمم ليكون جهاز JVM عالي الأداء.

لتحسين سرعة تنفيذ التعليمات البرمجية، يعتمد HotSpot على الترجمة الفورية. ولتسريع تخصيص الكائنات وجمع البيانات المهملة، يستخدم HotSpot الذاكرة التراكمية.

كومة الأجيال

كومة آلة جافا الافتراضية هي منطقة الذاكرة التي تستخدمها آلة جافا الافتراضية لتخصيص الذاكرة الديناميكي . [ 39 ]

في HotSpot، يتم تقسيم الذاكرة المخصصة إلى أجيال :

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

استُخدمت خاصية التوليد الدائم (أو permgen ) لتعريفات الفئات والبيانات الوصفية المرتبطة بها قبل إصدار Java 8. لم تكن خاصية التوليد الدائم جزءًا من الذاكرة الديناميكية (heap). [ 40 ] [ 41 ] أُزيلت خاصية التوليد الدائم من Java 8. [ 42 ]

في الأصل، لم يكن هناك توليد دائم، وكانت الكائنات والفئات تُخزّن معًا في نفس المنطقة. ولكن نظرًا لأن تفريغ الفئات يحدث بشكل أقل بكثير من جمع الكائنات، فقد أتاح نقل هياكل الفئات إلى منطقة محددة تحسينات كبيرة في الأداء. [ 40 ]

حماية

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

قبل إيقاف دعم إضافة جافا للمتصفح، كان من المحتمل أن تحتوي أي صفحة ويب على تطبيق جافا صغير، مما وفر ثغرة أمنية سهلة الوصول للمواقع الخبيثة. في عام 2013، أفادت مختبرات كاسبرسكي بأن إضافة جافا كانت الخيار المفضل لمجرمي الإنترنت. وتُستخدم ثغرات جافا في العديد من حزم البرامج الخبيثة التي ينشرها المخترقون على المواقع المخترقة. [ 44 ] أُزيلت تطبيقات جافا الصغيرة في جافا 11، التي صدرت في 25 سبتمبر 2018.

إصدارات جافا

إصدار جافاسنةالتغييرات
262026إصدار عام (غير مخصص للدعم طويل الأمد)
252025إصدار دعم طويل الأمد (LTS)
212023إصدار دعم طويل الأمد (LTS)
172021يتضمن إصدار LTS العديد من التحسينات، ويوفر مطابقة الأنماط لعبارات التبديل والفئات المغلقة.
162021تم تقديم فئات السجلات ، ومطابقة الأنماط ، والفئات المغلقة لتحسين قدرات نمذجة البيانات
152020تم تقديم كتل النصوص والفئات المغلقة كميزات معاينة، مما يحسن معالجة السلاسل والفئات.
142020تم تقديم ميزات جديدة مثل فئات السجلات ومطابقة الأنماط لـ instanceof كميزات تجريبية.
132019تضمنت التحسينات، وكتل النصوص ، وإعادة تنفيذ واجهة برمجة تطبيقات Socket القديمة
122019تم تقديم تعابير التبديل ، وجامع القمامة الجديد من نوع Shenandoah
112018تضمن إصدار LTS عميل HTTP جديدًا ، وإزالة وحدات Java EE وCORBA.
102018تم تقديم خاصية استنتاج نوع المتغير المحلي (var)، والتي تسمح بتعريف المتغيرات المحلية دون تحديد نوعها.
92017تم تقديم نظام وحدات منصة جافا (JPMS) لتقسيم التطبيقات إلى وحدات، وواجهة جافا التفاعلية JShell
82014إصدار رئيسي، تم فيه تقديم تعابير لامدا ، وواجهة برمجة تطبيقات جديدة للتاريخ والوقت لتحسين الإنتاجية
72011تم تقديم try-with-resources و Switch on String و Diamond Operator ، وتضمين معالجة الاستثناءات الموسعة، ومكتبة إدخال/إخراج الملفات الجديدة (NIO.2).
62006تم تقديم دعم لغة البرمجة النصية (JSR 223)، وتحسينات خدمة الويب ، وتوفير JDBC 4.0 مع دعم SQL XML
52004إصدار هام، يتضمن الأنواع العامة ، وحلقة for محسّنة ، والتحويل التلقائي للصناديق/فك التغليف ، والاستيراد الثابت ، والوسائط المتغيرة ، والتعدادات ، والتعليقات التوضيحية
42002تم تقديم التعابير النمطية ، وتسلسل الاستثناءات ، ومجموعة جديدة من واجهات برمجة تطبيقات الإدخال/الإخراج المسماة NIO (الإدخال/الإخراج الجديد)، وواجهة برمجة تطبيقات تسجيل جديدة.
32000تم تضمين جهاز جافا افتراضي جديد من صن يسمى HotSpot ، وتم تقديم واجهة تسمية ودليل جافا (JNDI)، وبنية مصحح أخطاء منصة جافا (JPDA).
21998تم تقديم إطار عمل المجموعات ، وخريطة ذاكرة سلاسل جافا للثوابت ، ومترجم فوري (JIT) ، وواجهة برمجة تطبيقات Swing للواجهات الرسومية.
1.11997تم تقديم الفئات الداخلية ، والانعكاس ، وجافا بينز ، وواجهة برمجة تطبيقات JDBC للوصول إلى قواعد البيانات
1.01996أدخلت النسخة الأولى من لغة برمجة جافا البرمجة الكائنية والرمز البايتي في جافا، مما جعل جافا متعددة المنصات.

تاريخ

جيمس جوسلينج

بدأ مشروع جافا كمشروع داخلي في شركة صن مايكروسيستمز في ديسمبر 1990، ليُقدّم بديلاً للغتي البرمجة C++ و C. وقد ازداد استياء المهندس باتريك نوتون من حالة واجهات برمجة التطبيقات (APIs) وأدواتها الخاصة بـ C++ وC في صن، بالإضافة إلى طريقة إدارة مشروع NeWS داخل الشركة. أبلغ نوتون سكوت ماكنلي بنيته ترك صن والانتقال إلى شركة NeXT ؛ فطلب منه ماكنلي أن يتظاهر بأنه صاحب القرار وأن يرسل له بريدًا إلكترونيًا يشرح فيه كيفية إصلاح الشركة. تصوّر نوتون إنشاء فريق صغير قادر على العمل باستقلالية تامة بعيدًا عن البيروقراطية التي كانت تُعيق مشاريع صن الأخرى. أحال ماكنلي الرسالة إلى شخصيات مهمة أخرى في صن، ومن هنا انطلق مشروع ستيلث . [ 45 ]

سرعان ما أُعيد تسمية مشروع ستيلث إلى مشروع غرين ، وانضم جيمس غوسلينغ ومايك شيريدان إلى نوتون. وبدأوا العمل مع مهندسين آخرين في مكتب صغير على طريق ساند هيل في مينلو بارك، كاليفورنيا . وكان هدفهم تطوير تقنية جديدة لبرمجة الجيل القادم من الأجهزة الذكية، والتي توقعت شركة صن أن توفر فرصًا جديدة كبيرة. [ 46 ]

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

كان بيل جوي قد تصور لغة جديدة تجمع بين لغتي ميسا وسي. في ورقة بحثية بعنوان "Further" ، اقترح على شركة صن أن يقوم مهندسوها بإنتاج بيئة برمجة كائنية التوجه تعتمد على لغة سي++. في البداية، حاول جوسلينج تعديل لغة سي++ وتوسيعها (وهو تطوير مقترح أشار إليه باسم "سي++++-")، لكنه سرعان ما تخلى عن ذلك لصالح إنشاء لغة جديدة أطلق عليها اسم " أوك" (Oak )، نسبةً إلى الشجرة التي كانت تقف خارج مكتبه مباشرةً. [ 47 ]

بحلول صيف عام 1992، تمكن الفريق من عرض أجزاء من المنصة الجديدة، بما في ذلك نظام التشغيل Green OS ، ولغة البرمجة Oak، والمكتبات، والمكونات المادية. ركز عرضهم الأول، في 3 سبتمبر 1992، على بناء جهاز مساعد رقمي شخصي (PDA) يُدعى Star7.كان النظام مزودًا بواجهة رسومية ومساعد ذكي يُدعى "ديوك" لمساعدة المستخدم. في نوفمبر من ذلك العام، انفصل مشروع غرين ليصبح شركة فيرست بيرسون ، وهي شركة تابعة مملوكة بالكامل لشركة صن مايكروسيستمز، وانتقل الفريق إلى بالو ألتو، كاليفورنيا . [ 48 ] كان لدى فريق فيرست بيرسون اهتمام بتطوير أجهزة تفاعلية للغاية، وعندما أصدرت شركة تايم وارنر طلبًا لتقديم عروض (RFP) لجهاز استقبال رقمي ، غيّرت فيرست بيرسون هدفها وقدمت عرضًا لمنصة جهاز استقبال رقمي. ومع ذلك، رأت صناعة الكابلات أن منصتهم تمنح المستخدم تحكمًا مفرطًا، فخسرت فيرست بيرسون المنافسة لصالح شركة إس جي آي . كما فشلت صفقة أخرى مع شركة ثري دي أو لتطوير جهاز استقبال رقمي. ولعدم قدرتها على جذب اهتمام صناعة التلفزيون، أُعيد دمج الشركة في شركة صن.

جافا تلتقي بالويب

جون غيج

في يونيو ويوليو 1994 ، وبعد ثلاثة أيام من جلسات العصف الذهني مع جون غيج (مدير العلوم في شركة صن)، وجوسلينغ، وجوي، ونوتون، وواين روزينغ ، وإريك شميدت ، أعاد الفريق توجيه المنصة نحو شبكة الويب العالمية . كانوا يعتقدون أنه مع ظهور متصفحات الويب الرسومية مثل موزاييك، يمكن للإنترنت أن يتطور إلى نفس الوسيلة التفاعلية للغاية التي تخيلوها لتلفزيون الكابل. كنموذج أولي، كتب نوتون متصفحًا صغيرًا، WebRunner (سمي على اسم فيلم Blade Runner )، والذي أعيد تسميته إلى HotJava [ 46 ] في عام 1995.  

أعادت شركة صن تسمية لغة أوك إلى جافا بعد أن كشف بحثٌ عن العلامات التجارية أن شركة أوك تكنولوجي تستخدم اسم أوك . [ 49 ] وقدّمت صن تراخيص جافا بأسعارٍ أقل من التكلفة لزيادة حصتها في السوق. [ 50 ] وعلى الرغم من أن جافا  1.0a أصبحت متاحةً للتنزيل في عام 1994، إلا أن الإصدار العام الأول من جافا، جافا 1.0a2 مع متصفح هوت جافا، صدر في 23 مايو 1995، وأعلن عنه غيج في مؤتمر صن وورلد. وبالتزامن مع إعلان غيج، أعلن مارك أندريسن ، نائب الرئيس التنفيذي لشركة نتسكيب كوميونيكيشنز ، بشكلٍ غير متوقع أن متصفحات نتسكيب ستدعم جافا. وفي 9 يناير 1996، شكّلت شركة صن مايكروسيستمز مجموعة جافا سوفت لتطوير هذه التقنية. [ 51 ]

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

رخصة جنو العمومية العامة

في 13 نوفمبر 2006، أتاحت شركة صن مايكروسيستمز الجزء الأكبر من تطبيقها للغة جافا بموجب رخصة جنو العمومية (GPL). [ 52 ] [ 53 ]

سجل الإصدارات

شهدت لغة جافا العديد من التغييرات منذ إصدار JDK ( مجموعة تطوير جافا ) 1.0 في 23 يناير 1996، بالإضافة إلى العديد من الإضافات للفئات والحزم إلى المكتبة القياسية . ومنذ J2SE  1.4، أشرفت عملية مجتمع جافا (JCP) على تطوير لغة جافا. وتستخدم JCP طلبات مواصفات جافا (JSRs) لاقتراح وتحديد الإضافات والتغييرات على منصة جافا. وتحدد مواصفات لغة جافا (JLS) اللغة؛ وتُدار التغييرات على JLS بموجب JSR  901. [ 54 ]

أصدرت شركة صن JDK 1.1 في 19 فبراير 1997. وشملت الإضافات الرئيسية إعادة تصميم شاملة لنموذج أحداث Abstract Window Toolkit (AWT)، وإضافة فئات داخلية إلى اللغة، و JavaBeans ، و Java Database Connectivity (JDBC).

J2SE 1.2 (8 ديسمبر 1998) - الاسم الرمزي: بلاي جراوند  . أُعيد تسمية هذا الإصدار والإصدارات اللاحقة حتى J2SE 5.0 إلى Java 2 ، واستُبدل اسم JDK باسم "J2SE" ( منصة Java 2، الإصدار القياسي ) لتمييز المنصة الأساسية عن J2EE ( منصة Java 2، إصدار المؤسسات ) وJ2ME ( منصة Java 2، الإصدار المصغر ). شملت الإضافات الرئيسية تقنية الانعكاس ، وإطار عمل للمجموعات ، ولغة وصف واجهة Java ( Java IDL) (وهي لغة وصف واجهة تُستخدم لتحقيق التوافق مع CORBA )، ودمج واجهة برمجة تطبيقات Swing الرسومية في الفئات الأساسية. كما تم إصدار إضافة Java (منذ ذلك الحين، أزال مُصنّعو متصفحات الويب دعمها، وهي الآن مهملة وسيتم إزالتها من قاعدة بيانات Java، وسيتم إزالتها بواسطة Java 26 في عام 2026 [ 55 ] ). ولأول مرة، تم تزويد JVM من Sun بمترجم JIT .

J2SE 1.3 (8 مايو 2000) - الاسم الرمزي Kestrel . تضمنت التغييرات البارزة تضمين HotSpot JVM (تم إصدار HotSpot JVM لأول مرة في أبريل 1999 لـ J2SE  1.2 JVM)، و JavaSound ، وواجهة تسمية ودليل Java (JNDI)، وبنية مصحح أخطاء منصة Java (JPDA).

J2SE 1.4 (6 فبراير 2002) – الاسم الرمزي Merlin . أصبح هذا أول إصدار لمنصة Java التي تم تطويرها في إطار عملية مجتمع Java باسم JSR  59. [ 56 ] تضمنت التغييرات الرئيسية التعبيرات النمطية المصممة على غرار Perl ، وتسلسل الاستثناءات ، ومحلل XML متكامل ومعالج XSLT ( JAXP )، و Java Web Start .

J2SE 5.0 (30 سبتمبر 2004) - الاسم الرمزي: تايجر . كان رقمه الأصلي 1.5، وهو الرقم المستخدم حتى الآن كرقم إصدار داخلي. [ 57 ] طُوِّرَ تايجر وفقًا لمعيار JSR  176، وأضاف العديد من الميزات اللغوية الجديدة الهامة، بما في ذلك حلقة for-each ، والأنواع العامة ، والتحويل التلقائي، والوسائط المتغيرة . [ 58 ]

جافا SE 6 (11 ديسمبر 2006) - الاسم الرمزي: موستانج . كانت هذه النسخة مُدمجة مع مدير قواعد بيانات، وتُسهّل استخدام لغات البرمجة النصية مع آلة جافا الافتراضية (مثل جافا سكريبت باستخدام محرك راينو من موزيلا ). في هذا الإصدار، استبدلت صن اسم "J2SE" بجافا SE ، وحذفت ".0" من رقم الإصدار. [ 59 ] تشمل التغييرات الرئيسية الأخرى دعم التعليقات التوضيحية القابلة للتوصيل ( JSR 269 )، والعديد من التحسينات على واجهة المستخدم الرسومية ، بما في ذلك تحسينات واجهة المستخدم الأصلية لدعم مظهر نظام التشغيل ويندوز فيستا ، وتحسينات على بنية مصحح أخطاء منصة جافا (JPDA) وواجهة أدوات آلة جافا الافتراضية لتحسين المراقبة واستكشاف الأخطاء وإصلاحها.  

جافا SE 7 (28 يوليو 2011) - الاسم الرمزي: دولفين . طُوّر هذا الإصدار وفقًا لمعيار JSR  336. [ 60 ] أضاف العديد من التغييرات اللغوية الصغيرة، بما في ذلك دعم السلاسل النصية في عبارة switch، و try-with-resources، واستنتاج النوع لإنشاء مثيلات عامة. تم توسيع JVM لدعم اللغات الديناميكية، بينما تم توسيع مكتبة الفئات، من بين أمور أخرى، بإطار عمل join/fork، [ 61 ] ومكتبة إدخال/إخراج ملفات جديدة محسّنة، ودعم بروتوكولات شبكة جديدة مثل SCTP . صدر تحديث جافا  7 رقم 76 في يناير 2015، وانتهى دعمه في 14 أبريل 2015. [ 62 ]

في يونيو 2016، وبعد آخر تحديث عام لجافا  [ 63 ] تم الإعلان عن ثغرات أمنية " قابلة للاستغلال عن بعد " في جافا  6 و7 و8. [ 13 ]

Java SE 8 (18 مارس 2014) - الاسم الرمزي: Kenai . تشمل التغييرات البارزة دعمًا على مستوى اللغة لتعبيرات لامدا ( الإغلاقات ) والأساليب الافتراضية، وبيئة تشغيل JavaScript الخاصة بمشروع Nashorn، وواجهة برمجة تطبيقات جديدة للتاريخ والوقت مستوحاة من Joda Time، وإزالة PermGen. هذا الإصدار غير مدعوم رسميًا على نظام التشغيل Windows XP ، [ 64 ] ولكنه يعمل عليه. لذا، ونظرًا لانتهاء دورة حياة Java 7، يُعد هذا الإصدار هو الموصى به لمستخدمي XP. سابقًا، وُصفت طريقة تثبيت يدوية غير رسمية فقط لنظام Windows XP SP3. وهي تشير إلى JDK8، منصة تطوير Java التي تتضمن أيضًا بيئة تشغيل Java كاملة الوظائف . [ 65 ] يدعم Java 8 أنظمة Windows Server 2008 R2 SP1 وWindows Vista SP2 وWindows 7 SP1 و Ubuntu 12.04 LTS والإصدارات الأحدث (وبعض أنظمة التشغيل الأخرى). [ 66 ]   

تتطلب Java SE 9 و 10  متطلبات نظام أعلى، أي Windows 7 أو Server 2012 (كما تم رفع الحد الأدنى لمتصفح الويب المعتمد إلى Internet Explorer 11 أو متصفحات ويب أخرى)، وقد تخلت Oracle عن التوافق مع 32 بت لجميع المنصات، أي أن " آلات Java الافتراضية (JVMs) ذات 64 بت من Oracle فقط هي المعتمدة". [ 67 ]

صدرت Java SE 11 LTS في سبتمبر 2018، وهي أول إصدار طويل الأمد منذ اعتماد نموذج الإصدار السريع بدءًا من الإصدار 9. ولأول مرة، يُمثل OpenJDK 11 الشفرة المصدرية الكاملة لمنصة Java بموجب رخصة جنو العمومية العامة (GNU GPL). ورغم أن أوراكل لا تزال تُصدر ترخيصًا مزدوجًا مع ترخيص احتكاري اختياري، إلا أنه لا توجد اختلافات في الشفرة أو وحدات نمطية خاصة بالإصدار المرخص بالترخيص الاحتكاري. [ 68 ] تتضمن ميزات Java  11 تطبيقين جديدين لجامع البيانات المهملة، ومسجل الرحلات لتصحيح الأخطاء المعقدة، وعميل HTTP جديد يدعم WebSocket . [ 69 ]

تم إصدار Java SE 12 في مارس 2019. [ 70 ]

تم إصدار Java SE 13 في سبتمبر 2019. [ 71 ]

تم إصدار Java SE 14 في مارس 2020. [ 72 ]

تم إصدار Java SE 15 في سبتمبر 2020.

تم إصدار Java SE 16 في مارس 2021.

تم إصدار Java SE 17 LTS في سبتمبر 2021.

تم إصدار Java SE 18 في مارس 2022.

تم إصدار Java SE 19 في سبتمبر 2022.

تم إصدار Java SE 20 في مارس 2023.

تم إصدار Java SE 21 LTS في سبتمبر 2023.

تم إصدار Java SE 22 في مارس 2024.

إضافةً إلى التغييرات اللغوية، طرأت تغييرات جوهرية على مكتبة فئات جافا على مر السنين، إذ نمت من بضع مئات من الفئات في JDK  1.0 إلى أكثر من ثلاثة آلاف فئة في J2SE  5.0. وقد تطورت واجهات برمجة تطبيقات جديدة كليًا، مثل Swing و Java 2D ، وتم إيقاف استخدام  العديد من فئات وأساليب JDK 1.0 الأصلية (بعضها "مُهمل نهائيًا")، على سبيل المثال تلك المتعلقة بعملية الإنهاء. [ 73 ]

تمت إزالة واجهة برمجة تطبيقات واحدة على الأقل نادرة الاستخدام (للترابط) من Java 22. [ 74 ] [ 75 ]

الاستخدام

استخدام سطح المكتب

برنامج جافا يعمل على جهاز كمبيوتر مكتبي يعمل بنظام ويندوز فيستا (مدعوم من جافا  8، ولكن ليس رسميًا من الإصدارات اللاحقة، مثل جافا  11).

يدعم الإصدار الحالي من Java أنظمة Windows 10 (وServer 2016) والإصدارات الأحدث ذات 64 بت، وmacOS 13.x والإصدارات الأحدث ذات 64 بت، وأنظمة Linux ذات 64 بت (مثل Oracle Enterprise Linux). لا تدعم Oracle بعض الإصدارات الأخرى (للبناء، ولكن قد تدعمها IBM وSAP وغيرها)، مع أنها تعمل على أنظمة معروفة مثل AIX وUbuntu وRHEL وAlphine/ musl . تم إيقاف دعم أنظمة Windows ذات 32 بت منذ Java 22 (ولم يعد بناء JVM ذي 32 بت ممكنًا بدون خيارات غير افتراضية).

بحسب شركة أوراكل في عام 2010، وُجدت بيئة تشغيل جافا (JRE) على أكثر من 850 مليون جهاز كمبيوتر شخصي. [ 76 ] لم تُضمّن مايكروسوفت بيئة تشغيل جافا (JRE) مع أنظمة تشغيلها منذ أن رفعت شركة صن مايكروسيستمز دعوى قضائية ضد مايكروسوفت لإضافة فئات خاصة بنظام ويندوز إلى بيئة تشغيل جافا المُضمّنة، ولإتاحة هذه الفئات الجديدة عبر Visual J++ . لم تعد آبل تُضمّن بيئة تشغيل جافا مع نظام التشغيل OS X بدءًا من الإصدار 10.7 ، ولكن النظام يطلب من المستخدم تنزيلها وتثبيتها عند تشغيل أي تطبيق يتطلب JRE لأول مرة. تتضمن العديد من توزيعات لينكس بيئة تشغيل OpenJDK كآلة افتراضية افتراضية، مما يُغني عن الحاجة إلى تنزيل بيئة تشغيل جافا الاحتكارية من أوراكل. [ 77 ]

تُستخدم بعض تطبيقات جافا على نطاق واسع في أجهزة سطح المكتب، بما في ذلك بيئات التطوير المتكاملة NetBeans و Eclipse و JetBrains [ 78 ] ، وبرامج مشاركة الملفات مثل LimeWire و Vuze . كما تُستخدم جافا في بيئة برمجة الرياضيات MATLAB ، سواءً لعرض واجهة المستخدم أو كجزء من النظام الأساسي. وتوفر جافا واجهة مستخدم متعددة المنصات لبعض تطبيقات التعاون المتطورة مثل Lotus Notes .

تعتزم أوراكل أولاً إيقاف دعم إضافة متصفح جافا القابلة للتثبيت بشكل منفصل من بيئة تشغيل جافا في JDK 9، ثم إزالتها نهائياً من إصدار مستقبلي، مما يجبر مطوري الويب على استخدام تقنية بديلة. [ 79 ]

جالب الحظ

دوق، تميمة جافا

تميمة جافا تُدعى ديوك. [ 80 ]

عندما أعلنت شركة صن عن إصدار Java SE و Java ME بموجب ترخيص برمجيات حرة ( رخصة جنو العمومية العامة )، أصدرت في الوقت نفسه رسومات Duke بموجب ترخيص BSD الحر. [ 81 ] ويتم ابتكار شخصية جديدة لـ Duke كل عام. [ 82 ] فعلى سبيل المثال، في يوليو 2011، تضمنت شخصية "Future Tech Duke" أنفًا أكبر، وحقيبة ظهر نفاثة، وأجنحة زرقاء. [ 83 ]

الترخيص

كان الكود المصدري لتطبيقات صن للغة جافا (أي التطبيق المرجعي الفعلي) متاحًا لبعض الوقت، ولكن حتى وقت قريب، [ 84 ] كانت شروط الترخيص تقيّد بشدة ما يمكن فعله به دون توقيع عقد مع صن (ودفع ثمنه في الغالب). ولذلك، لم تستوفِ هذه الشروط متطلبات مبادرة المصادر المفتوحة أو مؤسسة البرمجيات الحرة لاعتبارها مفتوحة المصدر أو برمجيات حرة، وبالتالي كانت جافا صن منصة احتكارية. [ 85 ]

رغم أن العديد من مشاريع الطرف الثالث (مثل GNU Classpath و Apache Harmony ) قد أنشأت تطبيقات جزئية مجانية للغة جافا، إلا أن الحجم الكبير لمكتبات Sun، بالإضافة إلى استخدام أساليب "الغرفة النظيفة"، جعل تطبيقاتها لمكتبات جافا (حيث أن المترجم والآلة الافتراضية صغيران نسبيًا ومحددان بدقة) غير مكتملة وغير متوافقة تمامًا. كما أن هذه التطبيقات كانت أقل كفاءة بكثير من تطبيقات Sun.

برامج مجانية

جوناثان آي. شوارتز

أعلنت شركة صن في مؤتمر JavaOne 2006 أن لغة جافا ستصبح برنامجًا مجانيًا ومفتوح المصدر ، [ 86 ] وفي 25 أكتوبر 2006، في مؤتمر Oracle OpenWorld، قال جوناثان آي. شوارتز إن الشركة ستعلن عن إصدار منصة جافا الأساسية كبرنامج مجاني ومفتوح المصدر في غضون 30 إلى 60 يومًا. [ 87 ]

أصدرت شركة صن آلة جافا هوت سبوت الافتراضية ومترجمها كبرمجيات حرة بموجب رخصة جنو العمومية العامة في 13 نوفمبر 2006، مع وعدٍ بوضع باقي مكونات JDK (بما في ذلك JRE) تحت رخصة جنو العمومية العامة بحلول مارس 2007 ("باستثناء بعض المكونات التي لا يحق لشركة صن نشرها في شكل مصدر قابل للتوزيع بموجب رخصة جنو العمومية العامة"). [ 88 ] ووفقًا لريتشارد ستالمان ، فإن هذا يعني نهاية "فخ جافا". [ 89 ] ووصف مارك شاتلوورث الإعلان الصحفي الأولي بأنه "إنجازٌ حقيقي لمجتمع البرمجيات الحرة ". [ 90 ]

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

كان هدف شركة صن استبدال الأجزاء التي لا تزال احتكارية ومغلقة المصدر بتطبيقات بديلة، وجعل مكتبة الفئات مجانية ومفتوحة المصدر بالكامل. في غضون ذلك، أنشأ مشروع تابع لجهة خارجية يُدعى IcedTea حزمة تطوير جافا (JDK) مجانية تمامًا وسهلة الاستخدام للغاية، وذلك باستبدال التعليمات البرمجية المُثقلة إما بنماذج أولية أو بتعليمات برمجية من GNU Classpath . مع ذلك، أصبح من الممكن بناء OpenJDK منذ ذلك الحين دون الأجزاء المُثقلة (ابتداءً من OpenJDK 6 b10 [ 92 ] )، وأصبح بيئة التشغيل الافتراضية لمعظم توزيعات لينكس. [ 93 ] [ 94 ] [ 95 ] [ 96 ]

في يونيو 2008، تم الإعلان عن أن IcedTea 6 (كإصدار مُجمّع من OpenJDK على Fedora 9 ) قد اجتاز اختبارات مجموعة أدوات توافق التكنولوجيا ويمكن اعتباره  تطبيقًا متوافقًا تمامًا مع Java 6. [ 97 ]

نظرًا لأن OpenJDK يخضع لرخصة GPL، فمن الممكن إعادة توزيع إصدار مخصص من JRE مباشرة مع تطبيقات البرامج، [ 98 ] [ 99 ] بدلاً من مطالبة المستخدم النهائي (أو مسؤول النظام الخاص به) بتنزيل وتثبيت الإصدار الصحيح من Oracle JRE الخاص على كل نظام من أنظمتهم بأنفسهم.

نقد

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

الأدوية الجنيسة

عند إضافة الأنواع العامة  إلى جافا 5.0، كان هناك بالفعل إطار عمل واسع من الفئات (العديد منها مهمل ) ، لذا تم اختيار تطبيق الأنواع العامة باستخدام الحذف للسماح بالتوافق مع الترحيل وإعادة استخدام هذه الفئات الموجودة. وقد حدّ هذا من الميزات التي يمكن أن توفرها هذه الإضافة مقارنةً ببعض اللغات الأخرى. [ 101 ] [ 102 ] أدت إضافة أحرف البدل للأنواع إلى جعل جافا غير سليمة. [ 103 ]

أنواع الأعداد الصحيحة غير الموقعة

تفتقر لغة جافا إلى أنواع بيانات عددية صحيحة غير مُوقّعة أصلية . غالبًا ما تُولّد البيانات غير المُوقّعة من برامج مكتوبة بلغة C ، ويمنع غياب هذه الأنواع التبادل المباشر للبيانات بين C وجافا. كما تُستخدم الأعداد الكبيرة غير المُوقّعة في العديد من مجالات المعالجة الرقمية، بما في ذلك التشفير، مما قد يجعل استخدام جافا أقل ملاءمة لهذه المهام. [ 104 ] على الرغم من إمكانية تجاوز هذه المشكلة جزئيًا باستخدام كود تحويل وأنواع بيانات أكبر، إلا أن ذلك يجعل استخدام جافا مُرهقًا للتعامل مع البيانات غير المُوقّعة. فبينما يُمكن استخدام عدد صحيح مُوقّع 32 بت لتخزين قيمة غير مُوقّعة 16 بت بسهولة نسبية، فإن قيمة غير مُوقّعة 32 بت تتطلب عددًا صحيحًا مُوقّعًا 64 بت. بالإضافة إلى ذلك، لا يُمكن تخزين قيمة غير مُوقّعة 64 بت باستخدام أي نوع عدد صحيح في جافا لأنه لا  يوجد نوع أكبر من 64 بت في لغة جافا. عند تجريدها باستخدام الدوال، تصبح استدعاءات الدوال ضرورية للعديد من العمليات الأصلية في بعض اللغات الأخرى. بدلاً من ذلك، من الممكن استخدام الأعداد الصحيحة الموقعة في جافا لمحاكاة الأعداد الصحيحة غير الموقعة من نفس الحجم، ولكن هذا يتطلب معرفة تفصيلية بعمليات البت المعقدة. [ 105 ]

العمليات الحسابية ذات الفاصلة العائمة

تعتمد حسابات الفاصلة العائمة في جافا بشكل كبير على معيار IEEE 754 ( معيار حسابات الفاصلة العائمة الثنائية )، ولكن بعض الميزات غير مدعومة حتى عند استخدام strictfpالمُعدِّل، مثل علامات الاستثناء والتقريب الموجه - وهي إمكانيات يفرضها معيار IEEE 754. بالإضافة إلى ذلك، فإن أنواع الفاصلة العائمة ذات الدقة الموسعة المسموح بها في معيار 754 والموجودة في العديد من المعالجات غير مسموح بها في جافا. [ 106 ] [ 107 ] 

أداء

في بدايات لغة جافا (قبل تطبيق تقنية HotSpot VM في جافا 1.3 عام 2000)، وُجهت بعض الانتقادات لأدائها. أشارت الاختبارات المعيارية عادةً إلى أن جافا أبطأ بنحو 50% من لغة C (وهي لغة تُترجم إلى كود أصلي). [ 108 ] [ 109 ] [ 110 ]

لقد تحسّن أداء لغة جافا بشكل ملحوظ منذ الإصدارات الأولى. [ 23 ] وقد أظهرت بعض الاختبارات المُحسّنة أن أداء مُجمّعات JIT مقارنةً بالمُجمّعات الأصلية متقاربٌ جدًا. [ 23 ] [ 24 ] [ 25 ]

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

حماية

توفر منصة جافا بنية أمان [ 111 ] مصممة لتمكين المستخدم من تشغيل التعليمات البرمجية غير الموثوقة في بيئة معزولة (sandbox) للحماية من البرامج الضارة أو سيئة التصميم. تهدف ميزة "العزل" هذه إلى حماية المستخدم من خلال تقييد الوصول إلى بعض ميزات المنصة وواجهات برمجة التطبيقات (APIs) التي قد تستغلها البرامج الضارة ، مثل الوصول إلى نظام الملفات المحلي، أو تشغيل أوامر عشوائية، أو الوصول إلى شبكات الاتصال.

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

في 31 أغسطس 2012، تم اكتشاف ثغرة أمنية خطيرة في Java  6 و7 (اللتان كانتا مدعومتين آنذاك) على أنظمة Microsoft Windows و OS X وLinux، مما سمح باستغلالها عن بُعد بمجرد تحميل صفحة ويب خبيثة. [ 112 ] لاحقًا، تبين أن Java 5 تعاني من نفس المشكلة. [ 113 ]

في 10 يناير 2013، انتقد ثلاثة متخصصين في مجال الحاسوب لغة جافا، مصرحين لوكالة رويترز بأنها غير آمنة، ونصحوا المستخدمين بتعطيلها. وصرح خايمي بلاسكو، مدير مختبرات AlienVault Labs، قائلاً: "جافا فوضى عارمة. إنها غير آمنة. يجب تعطيلها." [ 114 ] تؤثر هذه الثغرة الأمنية على جافا 7 ، ومن غير الواضح ما إذا كانت تؤثر على جافا 6 ، لذا يُنصح المستخدمون بتعطيلها. [ 115 ] [ 116 ] تُعلن تنبيهات الأمان الصادرة عن شركة أوراكل عن جداول زمنية لتحديثات أمنية هامة خاصة بجافا. [ 117 ]

في 14 يناير 2013، أفاد خبراء الأمن بأن التحديث لا يزال عاجزًا عن حماية أجهزة الكمبيوتر من الهجمات. [ 118 ] وقد دفعت هذه الثغرة الأمنية وزارة الأمن الداخلي الأمريكية إلى اتخاذ إجراء يحث المستخدمين على تعطيل أو إزالة جافا. [ 14 ] وقامت شركة آبل بحظر جافا بشكل محدود لجميع أجهزة الكمبيوتر التي تعمل بنظام التشغيل OS X من خلال برنامج مكافحة الفيروسات. [ 119 ]

في عام ٢٠١٤، واستجابةً لمشاكل الأمان والثغرات الأمنية التي ظهرت مؤخرًا في جافا، دعا مدوّن الأمن برايان كريبس المستخدمين إلى إزالة إضافة جافا للمتصفح على الأقل، بل والبرنامج بأكمله. وكتب: "أتطلع إلى عالم خالٍ من إضافة جافا (وإلى عدم اضطراري لتذكير القراء بتحديثات البرامج كل ثلاثة أشهر)، لكن من المرجح أن تمر سنوات قبل إزالة معظم إصدارات هذه الإضافة من أنظمة المستخدمين النهائيين حول العالم." [ ١٢٠ ] وأضاف: "بعد أن كانت واعدة، فقدت جافا جدواها في المتصفح، وأصبحت كابوسًا يُسعد مجرمي الإنترنت على حساب مستخدمي الكمبيوتر." [ ١٢١ ] وتابع: "أعتقد أنه ينبغي على الجميع إلغاء تثبيت جافا من جميع أجهزة الكمبيوتر الشخصية وأجهزة ماك، ثم التفكير مليًا فيما إذا كانوا بحاجة إلى إعادة تثبيتها. إذا كنت مستخدمًا منزليًا عاديًا، فربما يمكنك الاستغناء عنها. أما إذا كنت مستخدمًا تجاريًا، فقد لا يكون لديك خيار آخر." [ ١٢٢ ]

برامج إعلانية

تُعرف بيئة تشغيل جافا الموزعة من أوراكل بتضمين برامج دعائية تُثبّت افتراضيًا أثناء التثبيت والتحديثات التي تُطرح شهريًا تقريبًا. يشمل ذلك شريط أدوات Ask.com الذي يُعيد توجيه عمليات البحث في المتصفح إلى الإعلانات، وبرنامج McAfee Security Scan Plus. [ 123 ] يمكن حظر هذه العروض من خلال إعدادات لوحة تحكم جافا، على الرغم من أن هذه الإعدادات غير واضحة. يوجد هذا الإعداد ضمن علامة التبويب "متقدم" في لوحة تحكم جافا، تحت عنوان "متفرقات"، حيث يُسمى الخيار "كتم العروض الدعائية".

نظام التحديث

لم تُصدر جافا حتى الآن برنامج تحديث تلقائي لا يتطلب تدخل المستخدم أو صلاحيات إدارية [ 124 ] على عكس جوجل كروم [ 125 ] وفلاش بلاير [ 126 ] .

انظر أيضاً

مراجع

  1. "أصدرت شركة JavaSoft الإصدار 1.0 من Java" (بيان صحفي). مؤرشف من الأصل بتاريخ 5 فبراير 2008. تم الاطلاع عليه بتاريخ 9 فبراير 2016 .
  2. ^ أورتيز، سي. إنريكي؛ جيجير ، إريك (2001). ملف تعريف جهاز معلومات الهاتف المحمول لـ Java 2 Micro Edition: دليل المطور (PDF) . جون وايلي وأولاده . رقم ISBN 978-0471034650تم الاطلاع عليه بتاريخ 30 مايو 2012 .
  3. 1 2 3 4 5 6 "إصدارات مجموعة تطوير جافا" . Java.com . تم الاطلاع عليه في 26 أبريل 2026 .
  4. "مجموعة هوت سبوت" . Openjdk.java.net . تم الاطلاع عليه في 9 فبراير 2016 .
  5. 1 2 "محتويات تكوينات النظام المعتمدة لـ Oracle JDK 8 و JRE 8" . Oracle.com . 8 أبريل 2014. تم الاطلاع عليه في 9 فبراير 2016 .
  6. "اللغات المدعومة في Java SE 7" . Oracle.com . تم الاطلاع عليه في 9 فبراير 2016 .
  7. "OpenJDK: GPLv2 + استثناء مسار الفئة" . Openjdk.java.net. 1 أبريل 1989. تم الاطلاع عليه في 9 فبراير 2016 .
  8. "BCL For Java SE" . Oracle.com. 2 أبريل 2013. تم الاطلاع عليه في 9 فبراير 2016 .
  9. نوتون، باتريك. "تأثرت لغة جافا بشدة بلغة أوبجكتيف-سي" . المدرسة الافتراضية . مؤرشف من الأصل في 13 أغسطس 2012.
  10. ألكسندر، كريستوفر. "جافا إس إي 6 المتقدمة" . www.oracle.com . تم الاطلاع عليه بتاريخ 20 مايو 2018 .
  11. "لماذا يجب عليّ إزالة الإصدارات القديمة من جافا من جهازي؟" . www.java.com . مؤرشف من الأصل بتاريخ ١٢ فبراير ٢٠١٨. تم الاطلاع عليه بتاريخ ٦ فبراير ٢٠١٨ .
  12. "لماذا يجب عليّ إلغاء تثبيت الإصدارات القديمة من جافا من نظامي؟" . أوراكل . تم الاطلاع عليه في 9 سبتمبر 2016 .
  13. 1 2 "تحديث التصحيح الحرج لأوراكل - يوليو 2016" . www.oracle.com .
  14. 1 2 ويتاكر، زاك (11 يناير 2013). "وزارة الأمن الداخلي تحذر من تعطيل جافا وسط ثغرة أمنية غير معروفة" . ZDNet . تم الاطلاع عليه في 9 فبراير 2016 .
  15. "نظرة عامة على Java SE" . شركة أوراكل . تم الاطلاع عليه بتاريخ 26 فبراير 2017 .
  16. ""مواصفات واجهة برمجة تطبيقات Java® Platform، الإصدار القياسي ومجموعة تطوير Java الإصدار 25"" .
  17. "محتويات إصدار Java SE 6" . شركة أوراكل و/أو الشركات التابعة لها . تم الاطلاع عليه في 1 يناير 2013 .
  18. الانتقال إلى OpenJDK باعتباره التنفيذ المرجعي الرسمي لـ Java SE 7
  19. منصة جافا، الإصدار القياسي 7، تطبيقات مرجعية
  20. "Java Platform, Standard Edition 8 Reference Implementations" . مؤرشف من الأصل في 21 نوفمبر 2015.
  21. "الاختلافات بين Java EE و Java SE - تجربتك الأولى: مقدمة إلى منصة Java EE" . Docs.oracle.com. 1 أبريل 2012. تم الاطلاع عليه في 18 يوليو 2012 .
  22. "نظرة عامة على Java EE" . شركة أوراكل . تم الاطلاع عليه بتاريخ 26 فبراير 2017 .
  23. 1 2 3 لويس، جيه بي؛ نيومان، أولريش. "أداء جافا مقابل سي++" . مختبر الرسومات والتكنولوجيا الغامرة، جامعة جنوب كاليفورنيا .
  24. 1 2 "معيار جافا الأسرع من سي++" . Kano.net. 14 نوفمبر 2003. تم الاطلاع عليه في 9 فبراير 2016 .
  25. 1 2 FreeTTS – دراسة حالة أداء مؤرشفة بتاريخ 25-03-2009 على موقع Wayback Machine ، بقلم ويلي ووكر، وبول لامير، وفيليب كوك
  26. "مجموعة أدوات تطوير جافا" . وثائق IBM . IBM . تم الاطلاع عليه بتاريخ 27 نوفمبر 2025 .
  27. "الأسئلة الشائعة حول OpenJDK" . OpenJDK . مؤرشف من الأصل في 7 ديسمبر 2021. تم الاطلاع عليه في 23 أكتوبر 2021 .
  28. "BCL for Java SE" . مؤرشف من الأصل بتاريخ 14 أغسطس 2022. تم الاطلاع عليه بتاريخ 14 أغسطس 2022 .
  29. "شرح إصدارات معالجات Java ووحدات تزويد الطاقة" . مؤرشف من الأصل في 3 نوفمبر 2014.
  30. "نسخة مؤرشفة" . مؤرشفة من الأصل بتاريخ 14 أغسطس 2022. تم الاطلاع عليها بتاريخ 14 أغسطس 2022 .{{cite web}}: CS1 maint: archived copy as title ( link )
  31. "نسخة مؤرشفة" . مؤرشفة من الأصل في 10 أغسطس 2022. تم الاطلاع عليها في 14 أغسطس 2022 .{{cite web}}: CS1 maint: archived copy as title ( link )
  32. "فهم وحدات جافا 9" . مؤرشف من الأصل في 14 أغسطس 2022. تم الاطلاع عليه في 14 أغسطس 2022 .
  33. "وحدات جافا" .
  34. "التغييرات الهيكلية في Java 9 في JDK وJRE" . 30 أكتوبر 2017.
  35. "مطور IBM" .
  36. "دليل إلى نمطية جافا 9 | بايلدونغ" . 18 أبريل 2018.
  37. "الفصل 1. مقدمة" . docs.oracle.com .
  38. www.beanshell.org
  39. "الأسئلة الشائعة حول جمع البيانات المهملة في آلة جافا الافتراضية Hotspot" . صن مايكروسيستمز . 6 فبراير 2003. تم الاطلاع عليه في 7 فبراير 2009 .
  40. 1 2 ماساميتسو، جون (28 نوفمبر 2006). "تقديم الجيل الدائم" . مؤرشف من الأصل في 25 أغسطس 2016. تم الاسترجاع في 7 فبراير 2009 .
  41. ناتر، تشارلز (11 سبتمبر 2008). "تجربة أولية مع InvokeDynamic" . تم الاطلاع عليه في 7 فبراير 2009 .
  42. "JEP 122: إزالة الجيل الدائم" . شركة أوراكل . 4 ديسمبر 2012. تم الاطلاع عليه في 23 مارس 2014 .
  43. "ما هي لغة جافا، وهل هي غير آمنة، وهل ينبغي عليّ استخدامها؟" . موقع Lifehacker.com. ١٤ يناير ٢٠١٣. تم الاطلاع عليه بتاريخ ٢٦ يونيو ٢٠١٥ .
  44. "هل توجد أي حماية ضد ثغرات جافا؟ | مختبر كاسبرسكي" . Kaspersky.com. 9 سبتمبر 2013. مؤرشف من الأصل في 4 أبريل 2015. تم الاطلاع عليه في 26 يونيو 2015 .
  45. ساوثويك، كارين (1999). الظهيرة: القصة الداخلية لسكوت ماكنالي وصعود شركة صن مايكروسيستمز . نيويورك: وايلي. الصفحات 120-122 . ISBN  0471297135.
  46. 1 2 بايوس، جون (أبريل 2003). "تقنية جافا: السنوات الأولى" . صن مايكروسيستمز . مؤرشف من الأصل في 30 مايو 2008. تم الاطلاع عليه في 2 أغسطس 2009 .
  47. ↑ ساوثويك ، كارين (1999). الظهيرة: القصة الداخلية لسكوت ماكنالي وصعود شركة صن مايكروسيستمز . نيويورك: وايلي. ص 124. ISBN  0471297135.
  48. والراث، كاثي (21 ديسمبر 2001). "مقدمة" . صن مايكروسيستمز . تم الاطلاع عليه في 2 أغسطس 2009 .
  49. مورفي، كيرون (4 أكتوبر 1996). "لماذا قرروا تسميتها جافا؟" . جافا وورلد . تم الاسترجاع في 15 يوليو 2020 .قال فرانك يلين، وهو مهندس كبير في شركة صن: "أخبرنا المحامون أنه لا يمكننا استخدام اسم "OAK" لأنه مسجل بالفعل كعلامة تجارية لشركة Oak Technologies". "لذلك عُقدت جلسة عصف ذهني للتوصل إلى أفكار لاسم جديد."
  50. بنك، ديفيد (1 ديسمبر 1995). "ملحمة جافا" . وايرد . تم الاسترجاع في 4 أكتوبر 2022 .يقول شميدت: "سعره أقل من تكلفة إنتاجه. وهذا سيؤدي إلى خسارة في أعمال الترخيص في المستقبل المنظور. إنه استثمار استراتيجي في حصة السوق."
  51. «شركة صن مايكروسيستمز تعلن عن تأسيس شركة جافا سوفت» (بيان صحفي). صن مايكروسيستمز. 9 يناير 1996. مؤرشف من الأصل بتاريخ 10 فبراير 2008.
  52. "صن تفتح جافا" . صن مايكروسيستمز. 13 نوفمبر 2006. مؤرشف من الأصل في 13 مايو 2008.
  53. أوهير، كيلي (ديسمبر 2010). "إزالة منطق التوصيلات الثنائية لـ OpenJDK7 وOpenJDK6" . شركة أوراكل . تم الاطلاع عليه بتاريخ 25 نوفمبر 2011 .
  54. "برنامج عملية مجتمع جافا (SM) - طلبات مواصفات جافا (JSRs): تفاصيل JSR رقم 63" . Jcp.org . تم الاطلاع عليه في 9 فبراير 2016 .
  55. "JEP 504: إزالة واجهة برمجة تطبيقات التطبيقات المصغرة" . openjdk.org . تم الاطلاع عليه في 31 أكتوبر 2025 .
  56. "برنامج عملية مجتمع جافا (SM) - طلبات مواصفات جافا (JSRs): تفاصيل JSR رقم 59" . Jcp.org . تم الاطلاع عليه في 9 فبراير 2016 .
  57. "الإصدار 1.5.0 أم 5.0؟" . Java.sun.com . تم الاطلاع عليه في 9 فبراير 2016 .
  58. "برنامج عملية مجتمع جافا (SM) - طلبات مواصفات جافا: تفاصيل JSR رقم 176" . Jcp.org . تم الاطلاع عليه في 9 فبراير 2016 .
  59. "تسمية جافا" . Java.com . أوراكل . تم الاطلاع عليه بتاريخ 25 أغسطس 2011 .
  60. "برنامج عملية مجتمع جافا (SM) - طلبات مواصفات جافا: تفاصيل JSR رقم 336" . Jcp.org . تم الاطلاع عليه في 9 فبراير 2016 .
  61. ليا، دوغ (13 سبتمبر 2004). "JSRs: طلبات مواصفات جافا: JSR 166: أدوات التزامن" . عملية مجتمع جافا . شركة أوراكل.
  62. "ملاحظات إصدار التحديث 76 من Java™ SE Development Kit 7" . Oracle.com . تم الاطلاع عليه في 9 فبراير 2016 .
  63. "إصدارات Java 7 و Java 8 حسب التاريخ" . www.java.com .
  64. "ويندوز إكس بي وجافا" . Java.com. 8 أبريل 2014. تم الاطلاع عليه في 9 فبراير 2016 .
  65. "جافا - تثبيت JDK8 على نظام التشغيل ويندوز إكس بي - خطأ في ملف advapi32.dll" . موقع ستاك أوفر فلو .
  66. "تكوينات النظام المعتمدة لـ Oracle JDK 8 و JRE 8" . www.oracle.com .
  67. "تكوينات النظام المعتمدة لـ Oracle JDK 10" . www.oracle.com . تم الاطلاع عليه بتاريخ 27 مارس 2018. يدعم وضع X.org فقط. وضع Wayland غير مدعوم.
  68. "خارطة طريق دعم Oracle Java SE" . شركة أوراكل . 25 سبتمبر 2018. تم الاطلاع عليه في 25 سبتمبر 2018 .
  69. "JDK 11" . شركة أوراكل . 25 سبتمبر 2018. تم الاطلاع عليه بتاريخ 26 سبتمبر 2018 .
  70. "JDK 12" . OpenJDK . تم الاطلاع عليه بتاريخ 22 مارس 2019 .
  71. "JDK 13" . OpenJDK . تم الاطلاع عليه بتاريخ 17 سبتمبر 2019 .
  72. "JDK 14" . OpenJDK . تم الاطلاع عليه بتاريخ 25 مارس 2020 .
  73. "قائمة العناصر المهملة (Java SE 22)" . cr.openjdk.org . تم الاطلاع عليه في 16 أبريل 2024 .
  74. "إزالة Thread.countStackFrames" . bugs.openjdk.org . تم الاطلاع عليه في 16 أبريل 2024 .
  75. "Java SE 22 (JSR 397)" . cr.openjdk.org . تم الاطلاع عليه بتاريخ 16 أبريل 2024 .
  76. "ما هي تقنية جافا ولماذا أحتاجها؟" . مؤرشف من الأصل في 25 سبتمبر 2010. تم الاطلاع عليه في 15 ديسمبر 2011. تعمل جافا على أكثر من 850 مليون جهاز كمبيوتر شخصي حول العالم، وعلى مليارات الأجهزة حول العالم، بما في ذلك الأجهزة المحمولة وأجهزة التلفزيون.
  77. "Java - Fedora Project Wiki" . fedoraproject.org .
  78. "منصة IntelliJ" .
  79. الموضوع، داليبور (27 يناير 2016). "الانتقال إلى ويب خالٍ من الإضافات" . أوراكل.
  80. "دوق، تميمة جافا" . أوراكل . تم الاسترجاع في 18 مارس 2019 .
  81. "دوق: الصفحة الرئيسية للمشروع" . صن مايكروسيستمز . مؤرشف من الأصل في 18 يونيو 2007. تم الاسترجاع في 18 مارس 2007 .
  82. "دوق، تميمة جافا" .
  83. "Future Tech Duke (The Java Source)" . توري ويلدت. مؤرشف من الأصل في 20 أغسطس 2011. تم الاطلاع عليه في 17 أغسطس 2011 .
  84. سميث، دونالد (11 سبتمبر 2018). "إصدارات Oracle JDK لـ Java 11 والإصدارات الأحدث" .
  85. ستالمان، ريتشارد (24 مايو 2006). "الحادثة الغريبة للشمس في الليل" . غروكلاو . مؤرشف من الأصل في 5 مايو 2010.
  86. شوارتز، جوناثان. "؟" . مدونة جوناثان شوارتز . صن مايكروسيستمز. مؤرشفة من الأصل في 15 يوليو 2006.
  87. "Oracle OpenWorld: UnBreakable Linux / 5015.2 ليس مطروحًا في الأفق | مدونة Formtek" . Formtek.com. 26 أكتوبر 2006. تم الاطلاع عليه في 9 فبراير 2016 .
  88. "أوراكل وسن مايكروسيستمز | عمليات الاستحواذ الاستراتيجية | أوراكل" . Sun.com . تم الاطلاع عليه في 9 فبراير 2016 .
  89. "حر ولكن مقيد - فخ جافا - مشروع جنو - مؤسسة البرمجيات الحرة" . Gnu.org. 12 أبريل 2004. تم الاطلاع عليه في 9 فبراير 2016 .
  90. "شركة صن 'تطلق' جافا للعالم" . بي بي سي نيوز . 13 نوفمبر 2006. تم الاطلاع عليه في 6 مايو 2010 .
  91. "Open JDK هنا!" . صن مايكروسيستمز. 8 مايو 2007. تم الاطلاع عليه في 9 مايو 2007 .
  92. ويلارد، مارك (30 مايو 2007). "نشر مصدر OpenJDK6 b10" . تم الاطلاع عليه في 12 يوليو 2008 .
  93. "ريدهات جافا" .
  94. "فيدورا جافا" .
  95. "ديبيان جافا" .
  96. "أوبونتو جافا" .
  97. شاربلز، ريتش (19 يونيو 2008). "جافا أصبحت أخيرًا مجانية ومفتوحة المصدر" . مؤرشف من الأصل في 20 يونيو 2008.
  98. libgdx (9 ديسمبر 2013). "تجميع بيئة تشغيل جافا · ويكي libgdx/libgdx · جيت هاب" . Github.com . تم الاطلاع عليه في 9 فبراير 2016 .
  99. "سؤال حول تضمين حزمة OpenJDK مخصصة" . Java-Gaming.org. مؤرشف من الأصل في 4 مارس 2016. تم الاطلاع عليه في 9 فبراير 2016 .
  100. كلولي، غراهام (15 يناير 2013). ""ما لم تكن هناك ضرورة قصوى لتشغيل جافا في متصفحات الويب، فعطّلها"، هذا ما نصح به فريق الاستجابة للطوارئ الحاسوبية (CERT) التابع لوزارة الأمن الداخلي الأمريكية (DHS) - موقع Naked Security . Nakedsecurity.sophos.com. مؤرشف من الأصل بتاريخ 21 مايو 2023. تم الاطلاع عليه بتاريخ 9 فبراير 2016 .
  101. "الأنواع العامة في جافا" . شركة الحوسبة الكائنية. مؤرشف من الأصل في 2 يناير 2007. تم الاطلاع عليه في 9 ديسمبر 2006 .
  102. "ما الخطأ في جافا: حذف الأنواع" . 6 ديسمبر 2006. مؤرشف من الأصل في 22 يوليو 2012. تم الاطلاع عليه في 9 ديسمبر 2006 .
  103. "أنظمة أنواع جافا وسكالا غير سليمة" (ملف PDF) .
  104. "يجب أن توفر مكتبات جافا دعمًا للحسابات العددية غير الموقعة" . قاعدة بيانات الأخطاء، شبكة مطوري صن . أوراكل . تم الاطلاع عليه في 18 يناير 2011 .
  105. أوينز، شون ر. (5 نوفمبر 2009). "جافا و unsigned int، unsigned short، unsigned byte، unsigned long، إلخ. (أو بالأحرى، عدم وجودها)" . darksleep.com . تم الاطلاع عليه في 9 أكتوبر 2010 .
  106. كاهان، دبليو؛ دارسي، جوزيف دي. (1 مارس 1998). "كيف تضرّ الأعداد العشرية في جافا الجميع في كل مكان" (ملف PDF) . تم الاطلاع عليه في 9 ديسمبر 2006 .
  107. "الأنواع والقيم والمتغيرات" . صن مايكروسيستمز . تم الاطلاع عليه في 9 ديسمبر 2006 .
  108. "ما هي أسرع لغات البرمجة؟" . لعبة قياس أداء لغات البرمجة . مؤرشف من الأصل في 14 أغسطس 2011.
  109. "السرعة ÷ سرعة GNU g++ في لغة C++" . لعبة قياس أداء لغات البرمجة . مؤرشفة من الأصل بتاريخ 26 سبتمبر 2011.
  110. "مقارنة أداء لغتي C++ و Java؛ النتيجة متعادلة! | مدونة كريستيان فيلدي" . Blog.cfelde.com. 27 يونيو 2010. تاريخ الاطلاع: 9 فبراير 2016 .
  111. "معمارية أمان جافا: المحتويات" . Docs.oracle.com. 2 أكتوبر 1998. تم الاطلاع عليه في 9 فبراير 2016 .
  112. هورويتز، مايكل (31 أغسطس 2012). "ثغرة أمنية في جافا: إلخ | كمبيوتر وورلد" . Blogs.computerworld.com. مؤرشف من الأصل في 24 يوليو 2014. تم الاطلاع عليه في 9 فبراير 2016 .
  113. بروك، كريس. "المحطة الأولى لأخبار الأمن" . ثريت بوست. مؤرشف من الأصل في 8 مارس 2013. تم الاطلاع عليه في 9 فبراير 2016 .
  114. "لماذا وكيفية تعطيل جافا على جهاز الكمبيوتر الآن - التكنولوجيا والعلوم - الابتكار" . أخبار إن بي سي. ١٢ يناير ٢٠١٣. مؤرشف من الأصل في ٢١ فبراير ٢٠١٤. تم الاطلاع عليه في ٩ فبراير ٢٠١٦ .
  115. "وزارة الأمن الداخلي الأمريكية تدعو مستخدمي الكمبيوتر إلى تعطيل جافا" . Forbes.com . تم الاطلاع عليه بتاريخ 9 فبراير 2016 .
  116. بروك، كريس. "المحطة الأولى لأخبار الأمن" . ثريت بوست. مؤرشف من الأصل في 9 أبريل 2013. تم الاطلاع عليه في 9 فبراير 2016 .
  117. "تحديثات التصحيحات الهامة والتنبيهات الأمنية" . Oracle.com . تم الاطلاع عليه في 9 فبراير 2016 .
  118. فينكل، جيم (14 يناير 2013). "خبراء يحذرون من فشل التحديث الطارئ لجافا في سد ثغرات الجرائم الإلكترونية" . Independent.ie . تاريخ الاطلاع: 9 فبراير 2016 .
  119. كيلي، ميغان (14 يناير 2013). "أوراكل تُصدر تحديثًا لإصلاح ثغرة في جافا بعد تحذير وزارة الأمن الداخلي الأمريكية من وجودها" . فينشر بيت . تم الاطلاع عليه في 9 فبراير 2016 .
  120. كريبس، برايان (16 فبراير 2016). "وداعًا لملحق جافا من أوراكل" . كريبس أون سيكيوريتي .
  121. غونسالفيس، أنطون (5 سبتمبر 2012). "لم تعد جافا ضرورية. افصلها" . ريد رايت . ويرابل وورلد. مؤرشف من الأصل في 28 أكتوبر 2012.
  122. "جافا: هل يجب عليك إزالتها؟" . صحيفة الغارديان . 8 فبراير 2013.
  123. بوت، إد. "نظرة فاحصة على كيفية تثبيت أوراكل لبرامج خادعة مع تحديثات جافا" . ZDNet.com . ZDNet . تم الاطلاع عليه في 14 ديسمبر 2014 .
  124. "ويندوز 7 - كيف أقوم بتحديث جافا من حساب غير إداري؟" . Super User .
  125. "تحديث جوجل كروم - الكمبيوتر - مساعدة جوجل كروم" . support.google.com .
  126. "نشرة أمان Adobe" . helpx.adobe.com .