سؤال

وأنا أحاول إضافة إلى اثنين من المجلدات إلى CLASSPATH مشروع الكسوف بلدي، دعنا نقول مجلد A و B. مجلد B هو داخل A. كلما إضافة إلى classpath

<classpathentry kind="lib" path="/A"/>

ويعمل على ما يرام، ولكن أنا بحاجة إلى أن تكون قادرة على الوصول إلى الملفات في B أيضا. كلما أحاول أن أضيف

<classpathentry kind="lib" path="/A/B"/>

وإلى classpath، فإنه يقول

<اقتباس فقرة>   

لا يمكن عش "A / B داخل مكتبة A '

وأنا مبتدئ عندما يتعلق الأمر بتحرير CLASSPATH، لذلك أنا أتساءل، وهناك على أية حال لإضافة مجلد في classpath الكسوف التي تتداخل في مجلد آخر الذي هو أيضا في classpath الكسوف؟

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

المحلول

وأنا لا أعتقد أنك يمكن (أو يجب) يسمح لها بأن تفعل ذلك، وانها ليست حقا الكسوف قضية AFAIK

وأي CLASSPATH الفردي هو الجذر الذي تحت JVM يبدأ يبحث عن الطبقات باستخدام تدوين حزمة قياسي

لذلك دعونا نقول أن البرنامج لديه X فئة في الحزمة الافتراضي، وفئة b.X في حزمة ب. إذا جذر حزمة الافتراضي هو / أ، ثم الحزمة الخاصة بك ب سيكون في / أ / ب

إذا كان لديك واحدة CLASSPATH مشيرا الجذر إلى / أ واحد الجذرية لافتا CLASSPATH ل/ أ / ب، والآن يطلب منك لفئة X، ثم يمكن للمرء أن يفسر طلبك كما X في الحزمة الافتراضي (نظرا لوجود جذور في A)، ولكن أيضا من الطبقة X في الحزمة الافتراضي المتعلقة مسار / أ / ب، ولكن هذا هو الطبقة BX

وذلك لمنع هذه الأشياء من الحدوث، وكنت لا يسمح لها جذور CLASSPATH المتداخلة.

نصائح أخرى

وتحاول أن تفعل هذا، يعمل بالنسبة لي على الكسوف نيلي.

<classpathentry kind="lib" path="/A" excluding="B/"/>
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top