क्या यह एक जेएआर फ़ाइल बनाना संभव है जिसके लिए बाहरी निर्भरताओं की आवश्यकता है बिना जार फ़ाइल में उन निर्भरताओं को शामिल किए?बाहरी निर्भरताओं को शामिल किए बिना जेएआर फ़ाइल बनाएं
मेरा google-fu मुझे जवाब देने में विफल रहा है; जो कुछ भी मैंने पाया है, वह दिखाता है कि उन्हें जेएआर फ़ाइल में कैसे शामिल किया जाए, लेकिन यह नहीं कहने के लिए कि "मुझे उन्हें नहीं मिला है, उपयोगकर्ता के क्लासपाथ में देखें"। मुझे लगता है कि निर्भरता उपयोगकर्ता के क्लासपाथ पर ठीक तरह से स्थापित और कॉन्फ़िगर की गई है।
मेरे मामले में, मेरी निर्भरता अपाचे कॉमन्स सीएलआई और मैथ हैं।
संपादित करें: मेरी JAR फ़ाइल के अंदर, मैं Main.class है।
मेरे मैनिफ़ेस्ट फ़ाइल लगता है:
Manifest-Version: 1.0
Created-By: 1.6.0 (Sun Microsystems Inc.)
Main-Class: Main
मेरे CLASSPATH
.;C:\Program Files\Java\jre1.6.0_06\lib\ext\QTJava.zip;C:\java_lib\commons-cli-1.2.jar;C:\java_lib\commons-math-2.0\commons-math-2.0.jar
तरह लग रहा है अगर मैं /lib
में जार में निर्भरता शामिल हैं और प्रकट करने के लिए लाइन Class-Path: lib/commons-math-2.0.jar lib/commons-cli-1.2.jar
जोड़ें, फिर यह करता है काम।
मैं सिर्फ यह है कि अगर काम करेगा देखने के लिए जार में फ़ाइलों को शामिल किए बिना प्रकट करने के लिए Class-Path: commons-math-2.0.jar commons-cli-1.2.jar
जोड़ने की कोशिश की है, लेकिन ऐसा नहीं किया।
लेकिन मैं नहीं जानता कि वे कहाँ हैं, सिवाय इसके कि वे उपयोगकर्ता के कंप्यूटर के classpath में मौजूद हैं। – masher
@masher बंडल सब कुछ एक ज़िप में है ताकि आपके पास स्थान का नियंत्रण हो। अन्यथा, यह सिर्फ तुम्हारे लिए नहीं है। बेहतर है कि उपयोगकर्ता को उस मामले में मैन्युअल रूप से अपना वर्ग पथ सेट करने के लिए कहें। –
@masher: यदि आप नहीं जानते कि वे कहां हैं, तो आपको उन्हें बिल्कुल सूचीबद्ध नहीं करना चाहिए, लेकिन दस्तावेज़ को उपयोगकर्ता को अपने जार के बगल में कक्षा के स्थान पर रखना होगा। – Fredrik