2012-01-17 9 views
6

मैं एक निष्पादन योग्य JAR फ़ाइल बनाना चाहता हूं जिसमें अन्य जेएआर पुस्तकालय शामिल हैं। लेकिन जब मैं जार निष्पादित करता हूं, तो यह कक्षा पथ की समस्या का एक त्रुटि देता है।एक जेएआर फ़ाइल बनाना जिसमें अन्य लाइब्रेरी फाइलें हैं

मैं कक्षा-पथ समस्या को कैसे हल करूं?

+0

* "मैं एक निष्पादन योग्य जार बनाना चाहता हूं जिसमें अन्य जार पुस्तकालय शामिल हैं" * जो आप चाहते हैं उससे कम महत्वपूर्ण है। [JWS] (http://stackoverflow.com/tags/java-web-start/info) या संस्थापक का एक और प्रकार कई अवसरों पर अच्छी तरह से काम करने के लिए देखा गया है के साथ कई जार की तैनाती। –

+0

http://stackoverflow.com/questions/5424761/java-packaging-building-common-techniques-jar-file-specifically/5424847#5424847 –

उत्तर

9

मुझे लगता है कि आप इसे इस तरह से आजमा सकते हैं;

यहां आपके प्रश्न के लिए एक सरल उदाहरण है। सबसे पहले, हम मानते हैं कि हमारे पास D:\javademo जैसी प्रोजेक्ट निर्देशिका है। इस कामकाजी निर्देशिका में हम एक मुख्य श्रेणी HelloWorld.java बनाते हैं और thtat में हमारी अन्य JAR फ़ाइलें शामिल हैं, जैसे commons-lang.jar। अब, हमें test.jar फ़ाइल में हमारे मुख्य वर्ग हैलोवर्ल्ड और commons-lang.jar को संग्रहित करना होगा।

Manifest-Version: 1.0 
Created-By: tony example 
Class-Path: test.jar commons-lang.jar 
Main-Class: org.tony.java.HelloWorld 

हमें इस फाइल test.mf नामित: इसलिए है कि हम इस तरह हमारी कक्षा-पथ और मुख्य श्रेणी निर्दिष्ट कर सकते हैं

पहले हम हमारे प्रकट फ़ाइल को संपादित करना होगा। अब हम इस तरह हमारे JAR फ़ाइल उत्पन्न करने के लिए jar आदेश का उपयोग करें:

jar -cvfm test.jar test.mf -C ./ . 

तो यह JAR फ़ाइल test.jar उत्पन्न होगा। जावा कमांड का उपयोग करके आप इस मुख्य वर्ग को चलाने के लिए इस कमांड का उपयोग कर सकते हैं:

java -jar test.jar 

यह मेरा समाधान है। मुझे उम्मीद है कि यह आपको कुछ सहायक देगा ...

+0

आप इतना मैं कैसे फ़ाइल जार करने के लिए पुस्तकालय निर्भरता को जोड़ने के लिए कर सकते हैं करने के लिए उलझन में धन्यवाद –

0

आप इसके लिए तीसरे पक्ष के पुस्तकालयों का उपयोग करना चाहिए। उदाहरण के लिए, OneJar। आप OneJar उपकरण (जैसे Ant कार्य) के बजाय मानक JRE के उपकरणों का उपयोग करते हुए अंतिम JAR फ़ाइल का निर्माण करना होगा।

ऐसी जेएआर फ़ाइल चलाने पर, वनजर की सेवा कक्षा आपके बजाए लॉन्च की गई है। इस वर्ग में तब जेएआर फाइलें लोड की जाती हैं, साथ ही साथ आपकी कक्षाएं भी होती हैं, और आपकी मुख्य कक्षा चलाती हैं।

पहले से ही ऐसे प्रश्न और उत्तर हैं। स्टैक ओवरफ़्लो सवाल Easiest way to merge a release into one JAR file: उदाहरण के लिए।

+0

का डुप्लिकेट प्रश्न मैंने कोशिश की लेकिन काम नहीं कर रहा। –

+0

आपने इसे कबमाया? –

+0

मैं कई बार इससे पहले कि मैं इस पोस्ट की कोशिश की, लेकिन अभी भी काम नहीं कर रहा। –

संबंधित मुद्दे