سؤال

هذا السؤال لديه بالفعل إجابة هنا:

أستخدم Eclipse (3.4) ويقوم صفي بالتجميع دون تحذير أو أخطاء.يستخدم مشروعي ملف jar خارجي.

أين أحتاج إلى وضع ملف الجرة الخارجي هذا حتى لا أحصل على ملف java.lang.NoClassDefFoundError عند استخدام هذه الفئة من مشروع آخر (وليس في Eclipse)؟

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

يحرر:لا يتعلق هذا السؤال باستيراد الجرار في Eclipse، بل يتعلق باستخدامها خارج Eclipse.

هل كانت مفيدة؟

المحلول

إذا كنت تريد تضمين ملف JAR في مشروع Eclipse الخاص بك، فيمكنك بشكل عام إنشاء مجلد "lib" داخل مجلد المشروع، ووضع الملف هناك.تحتاج بعد ذلك إلى إخبار Eclipse بتضمينه في مسار الفصل الدراسي الخاص بك حتى يتم تجميع التعليمات البرمجية الخاصة بك وتشغيلها داخل Eclipse.

للقيام بذلك:
- الدخول إلى خصائص مشروعك
- حدد "Java Build Path" في العمود الأيسر
- حدد علامة التبويب "المكتبات" في الجزء الأوسط من النافذة
- انقر فوق الزر "إضافة JARs" - سيعطيك هذا قائمة بمشاريعك في Eclipse - قم بتوسيع مشروعك إلى مجلد lib - سيكون الجرة الخاصة بك هناك.
- حدد JAR، وانقر فوق "موافق"، ثم "موافق" مرة أخرى من نافذة الخصائص.

سيتم الآن تجميع التعليمات البرمجية الخاصة بك وتشغيلها.

نصائح أخرى

وضعه في الخاص بك jre/lib/ext مجلد

كل ما يقال عن مسار الفصل صحيح، ولكن هذا مكان ثابت ومعقول للعيش فيه.

يمكنك معرفة مجلد jre الخاص بك من خلال النظر إلى متغير البيئة JAVA_HOME على نظام التشغيل Windows.

لا يهم كثيرًا المكان الذي تضعه فيه، ولكنك تحتاج إلى تكوين مشروعك الآخر غير التابع لـ Eclipse لوضع الجرار الخارجية في مسار الفصل الخاص به - أو استخدام آلية دليل الامتدادات، إذا كان يجب عليك ذلك.(هذا أسهل، لكن جعله واضحًا أفضل بلا شك).

يبدو أن إجابة سيمون هي الأفضل ولكنها قديمة بعض الشيء الآن.لقد بحثت في Google عن مستند Oracle هذا الإضافات المثبتة .

اعتبارًا من Java 6، يمكن أيضًا وضع ملفات JAR الملحقة في موقع مستقل عن أي JRE محدد، بحيث يمكن مشاركة الامتدادات بواسطة جميع JREs المثبتة على النظام.

يُقال أنه بالنسبة لنظام التشغيل Windows، يجب عليك وضع ملحقاتك هنا %SystemRoot%\Sun\Java\lib\ext .

كل ما عليك فعله هو الرجوع إليه باستخدام ملف -classpath الخيار، في مجلد غير مضمن في مساحة عمل Eclipse، على سبيل المثال.والتي لا تعتمد على الكسوف على الإطلاق.

تحذير، لا يمكنك تنفيذ مشروعك الآخر باستخدام java -jar إذا قمت بالرجوع إلى الجرة الخارجية الخاصة بك بـ -cp خيار (انظر هذا السؤال)

أضعه في مجلد جديد.يجب تضمين هذا المجلد في مسار الإنشاء.لا يهم إذا كان في Eclipse أو خارجه.لدى Eclipse مسار بناء خاص بالمشروع ويقوم بتمرير هذا المسار إلى ملف javac.إذا كنت تريد تنفيذ javac خارج Eclipse، فيجب عليك تمرير مسار البناء يدويًا.

أعلم أن هذا ليس بالضبط ما تطلبه، ولكن هل فكرت في استخدام Maven؟قد تكون بعض المكونات الإضافية مثل التجميع مفيدة في مثل هذه المواقف.

احصل على جرة داخل Eclipse، كما كتب جيمس كامفيلد.

ثم عند إنشاء (Ant، Maven، يدويًا) للتوزيع، تأكد من تضمين ملف jar مع أو داخل تطبيقك jar أو war أو Ear أو أي ملف آخر، وأن أي برامج نصية لبدء التشغيل تتضمنه في مسار الفصل باستخدام سطر الأوامر -classpath خيار جافا، كما كتب VonC.

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

قم بإنشاء دليل lib مشترك ووضع هذا الجرة وأي ملفات jars شائعة أخرى قد تكون لديك هناك.إذا كنت تستخدم Maven، فهذا يعني أنه لديك بالفعل في شكل الريبو المحلي.

في Eclipse، قم بإنشاء متغير classpath لهذا الدليل ثم استخدمه للإشارة إلى ملف jar الخاص بك في مشاريعك.إذا كان لديك مشاريع متعددة تستوفي هذه الشروط، فإن ذلك سيجعل الحياة أسهل بكثير.كما أنه يجعل من السهل تغيير موقع الدليل الجذر إذا انتقلت من محرك أقراص محلي إلى محرك أقراص على الشبكة.

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

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top