2013-02-25 46 views
5

क्या यह सही है, कि डुप्लिकेट कक्षाओं के मामले में, "कक्षाओं" में से एक को लिया जाएगा?कक्षाएं या जार, जो जीतता है?

एक वेब अनुप्रयोग में विचार करें वर्ग एक

वेब-INF/कक्षाएं

और

वेब-INF/lib में एक जार के एक भाग में सीधे उपलब्ध हो जाएगा

कक्षाओं में से एक हमेशा जीत जाएगा?

+0

कम से कम मेरे अनुप्रयोग सर्वर और सर्वलेट कंटेनर के साथ अपने अनुभव से मैं "हाँ" कहूंगा, लेकिन मुझे यकीन नहीं है कि यह परिभाषा या सिर्फ "सामान्य उपयोग" से है या नहीं। दिलचस्प सवाल, यद्यपि। –

+0

स्पष्ट रूप से ऐसा। निम्न लिंक उपयोगी हो सकता है: http://stackoverflow.com/questions/4739302/web-inf-classes-vs-web-inf-lib –

+0

जहां तक ​​मुझे पता है कि यह मानक में निर्दिष्ट नहीं है। विभिन्न अनुप्रयोग सर्वर बहुत अलग व्यवहार करते हैं। वेबलॉगिक और जेबॉस पहले एप्सर्वर द्वारा प्रदान की गई जार चुनेंगे। – opi

उत्तर

2

यह कक्षा पथ पर निर्भर करता है - क्लासपाथ एंट्री जो पहले आता है वह शुरू में जीत जाएगा। इसके अलावा, यदि कई वर्ग लोडर हैं, तो एक वर्ग लोडर जिसने आश्रित वर्ग को लोड किया है, पहले कोशिश की जाएगी। यह इस बात पर निर्भर नहीं होना चाहिए कि कक्षाएं जार में हैं या नहीं। दस्तावेज here

सामान्य रूप से, ऐसा न करें क्योंकि एक ही नाम के तहत कई कक्षाएं आपदा के लिए एक असली नुस्खा है।

+0

** आपदा के लिए एक ही नाम के तहत कई कक्षाएं ** आपदा के लिए एक असली नुस्खा है, लेकिन जटिल वेब ऐप (100+ जार) में और क्या किया जा सकता है, जब आप जार की इमारत को नियंत्रित नहीं करते हैं? –