मुझे यकीन नहीं है कि यह वेबस्टार्ट के लिए बिल्कुल वैसे ही संभाला जाएगा, लेकिन मूल पुस्तकालयों (हमारे मामले में डीएलएस) के एक सेट से निपटने के दौरान हम डेस्कटॉप स्थिति में इस स्थिति में भाग गए।
LibB को काम करने से पहले libA लोड हो रहा है, जब तक कि उन पुस्तकालयों में से कोई एक निर्भरता नहीं है जो पथ में नहीं है और न ही। मेरी समझ यह है कि एक बार जब यह सिस्टम लोड हो जाता है पुस्तकालय कॉल (यानी जावा ने पुस्तकालय को अपने java.library.path में पाया है और अब ओएस को इसे लोड करने के लिए कह रहा है) - यह किसी भी निर्भर पुस्तकालयों को खोजने के लिए ऑपरेटिंग सिस्टम पर पूरी तरह से निर्भर है , क्योंकि उस समय यह ऑपरेटिंग सिस्टम है जो प्रक्रिया के लिए लाइब्रेरी लोड कर रहा है, और ओएस केवल सिस्टम पथ को देखने के लिए जानता है। वेबस्टार्ट ऐप के मामले में सेट करना मुश्किल लगता है, लेकिन इसके आस-पास एक तरीका है जिसमें स्थैतिक संकलन शामिल नहीं है। आप अपनी पुस्तकालय कहां शफल कर सकते हैं - मैं अनिश्चित हूं
यदि आप एक कस्टम क्लासलोडर का उपयोग करते हैं, तो आप loadLibrary और findLibrary को ओवरराइड कर सकते हैं ताकि यह आपके पुस्तकालयों को आपके क्लासपाथ में एक जार के भीतर से ढूंढ सके, और यदि आप इसे अपनी मूल लाइब्रेरी निर्भरताओं के बारे में भी जानते हैं (यानी libB पर निर्भर करता है libA libX पर निर्भर करता है, फिर libB लोड करते समय आप स्वयं को पकड़ सकते हैं और सुनिश्चित कर सकते हैं कि आप पहले libA लोड करें, और उस नोटिस को जांचने और पहले libX लोड करें। फिर ओएस आपके पुस्तकालय में मौजूद लाइब्रेरी को खोजने का प्रयास नहीं करता है। यह klunky और थोड़ा दर्दनाक है , लेकिन जावा को सुनिश्चित करना उन्हें सही तरीके से लोड करता है और उन्हें सभी को लोड कर सकता है।