كيف تتعامل مع ملفين جرة في جافا؟
سؤال
أنا أستخدم NetBeans IDE لمشروع Java. في هذا المشروع ، أحتاج إلى ملف جرة "htmlunit-2.6.jar".
لقد قمت بتضمين ملف الجرة هذا في مجلد مكتبات المشروع. لقد قمت بتأسيس أحد فئته "WebClient" ولكن هذه الفئة تحتاج إلى فئات أخرى من ملف "Commons-HTTPClient-3.1.jar".
لقد قمت الآن أيضًا بتضمين ملف "Commons-HTTPClient-3.1.jar" في مجلد مكتبات المشروع. ولكن عندما قمت بتجميع ملف المصدر الخاص بي ، يرمي
ClassNotFoundException: org.apache.commons.httpclient.auth.credentialSprovider
يرجى إخباري بكيفية التعامل مع هذا الموقف عندما يحتاج فصل واحد في ملف جرة واحدة إلى فئات أخرى في ملف جرة آخر.
المحلول
ما عليك سوى وضع ملفات JAR المطلوبة على ClassPath في وقت الترجمة ويجب أن تعمل. إذا كنت تفعل ذلك من سطر الأوامر ، فسيبدو هكذا:
javac -cp jar1:jar2 my.Application
إذا كنت تستخدم NetBeans
ثم تحتاج إلى معرفة NetBeans
أن كل من الجرار على classpath الخاص بك. سيكون محدد في أ المشروع> الخصائص ساحر كما هو موضح هنا و أيضا هنا من البرنامج التعليمي
نصائح أخرى
يخبرك ClassNotFoundException أن مكتباتك لديها بعض التبعيات التي لم يتم تضمينها في ClassPath في وقت التشغيل. مصدرك على ما يرام ، لأنه إذا كنت قد استخدمت شيئًا غير متوفر ، فسيخبرك NB بهذا في وقت الترجم (أو قبل التحرير).
لذا ، مرحبًا بك في "الجحيم التبعية"من Java. بالنسبة للمشاريع الصغيرة ، ستتمكن من التحقق من جميع التبعيات باليد مع ملفات ReadMe ، والمستندات ، وما إلى ذلك ، ووضعها في تكوين المشروع كما قال Oxbow_lakes. للحصول مافن. سوف تفعل (معظم) كل شيء بالنسبة لك!
(Maven متاح في NB6)