البرمجة

استخدام الوحدات التلقائية في Java 9

في Java 9 وما بعدها، يمكنك استخدام الوحدات (Modules) لتنظيم وإدارة تبعيات المشروع. عندما تنشئ وحدة Java، يجب أن تحتوي على ملف module-info.java لتعريف الوحدة وتبعياتها. إذا كان لديك وحدة Java 9 وتحتاج إلى استخدام تبعيات خارجية لم تتبع نفس النهج في تنظيم تبعياتها (أو لا يمكنك تغييرها)، يمكنك استخدام تقنية المسارات (Paths) والوحدات الخارجية (Automatic-Module) للتعامل مع هذه الحالة.

لتحقيق هذا، يمكنك اتباع الخطوات التالية:

  1. إنشاء ملف module-info.java: في مشروعك الرئيسي (de.app1)، يجب عليك إنشاء ملف module-info.java بالشكل التالي:

    java
    module de.app1 { requires de.app2; }

    حيث تشير الـrequires إلى وحدة الـ(de.app2) التي تحتاجها.

  2. تحديد المسار للوحدة الخارجية: يمكنك تحديد المسار الذي يحتوي على ملف الجر (jar) للوحدة الخارجية (de.app2) باستخدام خاصية الفئات (classpath). يمكنك فعل ذلك باستخدام خاصية -p مع أمر التجميع (javac)، على سبيل المثال:

    bash
    javac -p /path/to/de.app2.jar -d out/de.app1 src/de/app/App.java

    حيث /path/to/de.app2.jar هو مسار الملف الجر لوحدة (de.app2).

  3. تحديد الوحدة الخارجية كوحدة تلقائية (Automatic Module): إذا كانت الوحدة الخارجية (de.app2) لا تحتوي على ملف module-info.java، يمكنك تحديدها كوحدة تلقائية باستخدام خاصية --add-modules مع أمر التشغيل (java)، على سبيل المثال:

    bash
    java --module-path /path/to/de.app2.jar --add-modules de.app2 -cp out/de.app1 de.app.App

    حيث /path/to/de.app2.jar هو مسار الملف الجر لوحدة (de.app2).

من المهم أن تلاحظ أن استخدام وحدات تلقائية يعتبر حلاً مؤقتاً، ويجب عليك التحقق من إمكانية تحويل الوحدة الخارجية إلى وحدة Java صحيحة بإضافة ملف module-info.java بها.

المزيد من المعلومات

بالطبع! في Java 9 والإصدارات الأحدث، يتم استخدام المفهوم الجديد للوحدات (Modules) لتنظيم البرامج وتبعياتها. يمكنك تعريف وحدة Java بواسطة ملف module-info.java الذي يحتوي على تعريف للوحدة بما في ذلك الوحدات التي تعتمد عليها (requires) والحزم التي تصدرها (exports). الهدف من هذا التغيير هو تبسيط إدارة تبعيات المشاريع وتحسين تنظيم الكود.

بشكل عام، يعتبر تحويل وحدات خارجية إلى وحدات Java صحيحة الحلا الأمثل، حيث يمكنك ذلك بإضافة ملف module-info.java إلى جميع المشاريع التي تعتمد عليها. ومع ذلك، في حالة عدم إمكانية تعديل تلك الوحدات (مثل تلك المصادر الخارجية مثل Apache Commons)، يمكن استخدام الوحدات التلقائية كحلاً مؤقتًا.

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

مقالات ذات صلة

زر الذهاب إلى الأعلى

هذا المحتوى محمي من النسخ لمشاركته يرجى استعمال أزرار المشاركة السريعة أو تسخ الرابط !!