मेरी पहली पलटा था env.CLASSPATH, लेकिन दूसरी सोचा पर उपयोग नहीं करते हैं और जब तक के बारे में सोच भी इसे नहीं करना चाहिए क्यों मैं विचार likeing, कम से कम एक स्थानीय विकास और परीक्षण पर्यावरण के लिए शुरू कर दिया (और कम से कम कुछ समय के लिए)
लाभ इस दृष्टिकोण का है कि आप अपने सभी आम पुस्तकालयों (log4j, dom4j, Joda समय, गूगल संग्रह, Apache Commons चिड़ियाघर, के साथ एक स्थानीय फ़ोल्डर रख सकते .. ।)। तो आप लंबे समय तक टाइपिंग लंबी कक्षा के तर्कों को बर्बाद किए बिना अपने सभी एप्लिकेशन को खोल से संकलित और निष्पादित कर सकते हैं।
और अभी भी -cp
तर्क का उपयोग करने के लिए स्वतंत्र है, क्योंकि यह वैश्विक CLASSPATH
सेटिंग को प्रतिस्थापित करता है।
मैं इसे कभी भी उत्पादन प्रणाली पर उपयोग नहीं करता। जोखिम सिर्फ इतना है कि कोई उस फ़ोल्डर की सामग्री या CLASSPATH
चर बदलता है और मेरा एप्लिकेशन अब और काम नहीं करता है।
तो उत्पादन के लिए, कोई वैश्विक 'क्लासस्पैट' नहीं है और क्लासपाथ स्ट्रिंग में कोई वाइल्डकार्ड नहीं है।
ए हानिकारक ऊपर जैसा वातावरण में वाइल्डकार्ड पथ का उपयोग करने के लिए: थोड़ी देर के बाद भी कई परियोजनाएं एकल लाइब्रेरी फ़ोल्डर पर निर्भर करती हैं। आप पुस्तकालय को अद्यतन करने या पुराने को हटाने का दुष्प्रभाव नहीं जानते हैं। और बड़े आवेदन के लिए यह पता लगाना मुश्किल हो सकता है कि पूल से कौन से पुस्तकालयों की वास्तव में आवश्यकता है।आप उत्पाद में अप्रयुक्त libs को जोड़ना समाप्त कर सकते हैं क्योंकि आप अनिश्चित हैं कि एप्लिकेशन उस lib के बिना चलाएगा।
तो मेरा निष्कर्ष - विकास, परीक्षण, प्रोटोटाइप के लिए एक अच्छा शॉर्टकट लेकिन उत्पादन के लिए जोखिम भरा। उत्पादन के लिए मैं वाइल्डकार्ड के बिना क्लासपाथ स्ट्रिंग्स (ऑटोगनेरेटेड) पसंद करूंगा।
स्रोत
2010-08-24 13:42:39
fwiw, मेरे lib फ़ोल्डर को पैकेजिंग चरण के हिस्से के रूप में appassembler प्लगइन का उपयोग करके मेरी निर्भरता से मेरे निर्भरता से निर्मित किया जाता है। क्लासपाथ को परिभाषित करने के लिए मेरा पीओएम अंतिम दस्तावेज है। –