मेरे पास एक जार फ़ाइल है जो मैनिफेस्ट में मुख्य श्रेणी का उल्लेख करती है। जब मैं निम्न आदेशक्या जावा -jar विकल्प क्लासपाथ विकल्प बदलता है
java -cp .;./* com.foo.MainClass
कोड निष्पादित करता है और काम करता है का उपयोग कर जार निष्पादित करने के लिए प्रयास करें।
जब मैं निम्न आदेश का उपयोग कर जार पर अमल करने की कोशिश
java -cp .;./* -jar myjar.jar
मैं कक्षा मिल कुछ जार जो myjar.jar को उसी फ़ोल्डर में हैं के लिए मिला execptions नहीं। मुझे आशा है कि -सीपी विकल्प में उन जारों को कक्षा पथ में शामिल किया जाएगा। मैंने java.class.path संपत्ति प्रिंट करने के लिए अपना कोड संशोधित किया। पहले मामले में यह वर्तमान निर्देशिका में सभी जार सूचीबद्ध करता है, दूसरे मामले में यह सिर्फ myjar.jar
मैंने सभी जारों के साथ क्लास-पथ तत्व जोड़ने के लिए मैनिफेस्ट को भी संशोधित किया। फिर दूसरा आदेश काम करता है। लेकिन मेरे कोड में मैं एक अरबी कक्षा लोड करने की कोशिश कर रहा हूं जिसका नाम कमांड प्रॉम्प्ट पर प्रदान किया गया है, इसलिए मैं वर्ग पथ को सभी जार को फ़ोल्डर में रखना चाहता हूं। मैं इस परिदृश्य में दूसरा कमांड कैसे काम करूं?
[वनजर] (http://one-jar.sourceforge.net/) पर एक नज़र डालें। यह आपके सीपी मुद्दों को हल करना चाहिए। – flash
@flash: शायद नहीं। वह कहता है कि वह संकलन समय पर अतिरिक्त वर्ग पथ नहीं जानता (अन्यथा वह इसे सिर्फ मैनिफेस्ट में जोड़ सकता है)। – Thilo
लगता है जैसे आपको अपने स्वयं के क्लासलोडर का उपयोग करना है (जो आपके पर्यावरण के अनुसार चीजों को वापस जोड़ता है)। – Thilo