"إذا أراد العامل أن يؤدي عمله بشكل جيد، فعليه أولاً أن يشحذ أدواته." - كونفوشيوس، "مختارات كونفوشيوس. لو لينجونج"
الصفحة الأمامية > برمجة > لماذا لا يستطيع Eclipse العثور على فئات XML الخاصة بي بعد التبديل إلى JDK 10؟

لماذا لا يستطيع Eclipse العثور على فئات XML الخاصة بي بعد التبديل إلى JDK 10؟

تم النشر بتاريخ 2024-12-22
تصفح:676

Why Can\'t Eclipse Find My XML Classes After Switching to JDK 10?

Eclipse غير قادر على تحديد موقع فئات XML نشر JDK 10 Build Path Transition: القرار

عند محاولة تبديل مسار بناء مشروع Maven إلى JDK 10 داخل Eclipse، قد يواجه المستخدمون مشكلة حيث تفشل عمليات إنشاء Eclipse في تحديد موقع الفئات المرتبطة بـ XML، بما في ذلك javax.xml.xpath.XPath وorg.w3c.dom.Document وorg.xml.sax.SAXException. تؤثر هذه الصعوبات في المقام الأول على الفئات المشتقة من تبعية xml-apis-1.4.01.

السبب الجذري

يتم تشغيل السلوك عند انتقال المشروع من Java 1.8 إلى Java 10 دون أن يتم الإعلان عنها بشكل صريح كوحدة نمطية باستخدام ملف Module-info.java. هذا يعني أنه تم تجميع كود المشروع في الوحدة النمطية غير المسماة، والتي تتمتع برؤية كاملة للوحدات النمطية المسماة وغير المسماة، بما في ذلك java.xml من مكتبة نظام JRE، التي تصدر هذه الحزم الإشكالية.

بالإضافة إلى ذلك، xml- يوفر apis.java الموجود على مسار الفصل مجموعة أخرى من هذه الحزم نفسها. ومع ذلك، ترتبط هذه الحزم بوحدة غير مسماة، مما يؤدي إلى انتهاك متطلبات "الرؤية الفريدة" كما هو محدد في JLS §7.4.3. وبالتالي يصبح البرنامج غير صالح ويواجه الرفض من المترجمين.

الحل

لحل هذه المشكلة، يمكن اعتماد أحد الأساليب الثلاثة:

(1) الإعلان عن المشروع كوحدة نمطية

تقديم ملف Module-info.java داخل المشروع، وتحديد الوحدات النمطية المحددة التي يجب على المشروع قراءتها من خلال استخدام الكلمة الأساسية "يتطلب". يضمن هذا النهج رؤية فريدة من خلال الإشارة بوضوح إلى الحزم التي يتم استيرادها.

(2) الحد من الوحدات التي يمكن ملاحظتها

دون تحويل المشروع إلى وحدة، فمن الممكن استبعاد java.xml من مجموعة الوحدات التي يمكن ملاحظتها. في Eclipse، يمكن تحقيق ذلك من خلال مربع الحوار "تفاصيل الوحدة النمطية"، ضمن علامة التبويب "المحتويات". قد يكون من الضروري دفع معظم الوحدات بعيدًا عن java.base إلى عمود "الوحدات النمطية المتاحة" وإعادة إضافة الوحدات الأساسية بشكل انتقائي.

(3) استبعاد java.xml (JDK Bug)

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

في الختام، فإن مشكلة عدم العثور على فئة XML ذات الصلة عند التبديل إلى JDK 10 في Eclipse ناتجة عن انتهاك متطلبات الرؤية الفريدة. يتم حل المشكلة إما عن طريق تقسيم المشروع أو الحد من الوحدات التي يمكن ملاحظتها.

أحدث البرنامج التعليمي أكثر>

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

Copyright© 2022 湘ICP备2022001581号-3