java - एएआर से जार कैसे परिवर्तित करें




war aar (5)

परिस्थिति:

मैं जावा लाइब्रेरी का उपयोग करना चाहता हूं और मेरे पास केवल मैवेन रिपोजिटरी से एएआर फ़ाइल है लेकिन मुझे जार फ़ाइल की आवश्यकता है।

पीछे की कहानी:

मैंने पुस्तकालय संकलित करने की कोशिश की, लेकिन इसकी ग्रैडल संरचना अस्थिर है। इसलिए मैंने अपनी संकलित जार फ़ाइल के लिए कहा, और इसके डेवलपर ने कुछ मैवेन रिपोजिटरी से एक आयर फाइल सौंपी (डेवलपर अपनी परियोजना को संकलित नहीं कर सकता)। ग्रेडल सिस्टम एक गड़बड़ था, यह कई पुस्तकालयों पर निर्भर था और ग्रैडल ने कुछ अपवाद फेंक दिया है।

मैंने इसे अपने आईडीईए में उपयोग करने की कोशिश की, लेकिन यह इसे नहीं देख सकता। एक लाइब्रेरी प्रोजेक्ट को जार फ़ाइल में संकलित करने में सक्षम होना चाहिए, है ना?

सवाल:

एएआर फ़ाइल को जेएआर फ़ाइल में बदलने के लिए मुझे क्या करना चाहिए?


.aar एक मानक ज़िप संग्रह है, वही एक .jar में प्रयोग किया जाता है। बस विस्तार को बदलें और मान लें कि यह भ्रष्ट या कुछ भी नहीं है, यह ठीक होना चाहिए।

यदि आपको इसकी आवश्यकता है, तो आप इसे अपने फाइल सिस्टम में निकाल सकते हैं और फिर इसे जार के रूप में दोबारा बना सकते हैं।

1) Rename it to .jar
2) Extract: jar xf filename.jar
3) Repackage: jar cf output.jar input-file(s)

उन लोगों के लिए, जो इसे स्वचालित रूप से करना चाहते हैं, मैंने थोड़ी दो-पंक्तियों वाली बैश लिपि लिखी है जो अगले दो चीजें करता है:

  1. सभी * .aar फ़ाइलों को देखता है और उनसे कक्षाओं को निकाल देता है
  2. अर्क की तरह होने के लिए निकाले गए वर्गों का नाम बदलता है लेकिन एक नए एक्सटेंशन के साथ

    find . -name '*.aar' -exec sh -c 'unzip -d `dirname {}` {} classes.jar' \;
    find . -name '*.aar' -exec sh -c 'mv `dirname {}`/classes.jar `echo {} | sed s/aar/jar/g`' \;
    

बस!


जैसा कि कई अन्य लोगों ने इंगित किया है, सिर्फ .aar फ़ाइल से .jar निकालने से काफी कटौती नहीं होती है क्योंकि संसाधन गायब हो सकते हैं।

यहां मेरे लिए काम किए गए कदम हैं (एंड्रॉइड का संदर्भ, यदि आपके पास अन्य उद्देश्यों हैं तो आपका माइलेज भिन्न हो सकता है):

  1. .aar फ़ाइल को .zip और निकालने के लिए नाम बदलें।
  2. निकाला गया फ़ोल्डर एक एडीटी प्रोजेक्ट है जिसे आप कुछ मामूली संशोधनों के साथ ग्रहण में आयात कर सकते हैं (नीचे देखें)!
  3. निकाले गए फ़ोल्डर में निहित फ़ाइल class.jar का नाम बदलें जो भी आपको पसंद है (इस उदाहरण में myProjectLib.jar) और इसे निकाले गए फ़ोल्डर में lib फ़ोल्डर में ले जाएं।
  4. अब ग्रहण स्वीकार करने के लिए आपको दो फाइलों को निकाले गए फ़ोल्डर रूट में रखना होगा:
    • .project
    • .classpath
  5. ऐसा करने के लिए, ग्रहण में एक नई एंड्रॉइड डमी परियोजना बनाएं और फ़ाइलों पर प्रतिलिपि बनाएं, या मौजूदा एंड्रॉइड प्रोजेक्ट से कॉपी करें।
  6. .project फ़ाइल खोलें और एक्सएमएल नाम टैग की तलाश करें और इसकी सामग्री को myProjectLib (या जिसे आपने ऊपर अपनी जार फ़ाइल कहा है) के साथ प्रतिस्थापित करें और सहेजें।
  7. अब ग्रहण में आप मौजूदा स्रोत से फ़ाइल -> नई -> परियोजना -> एंड्रॉइड प्रोजेक्ट फ़ाइल कर सकते हैं .. और निकाली गई फ़ोल्डर सामग्री को इंगित करें।
  8. आयात के बाद, नव निर्मित प्रोजेक्ट पर राइट क्लिक करें, गुण -> एंड्रॉइड का चयन करें, और लाइब्रेरी जांचें।
  9. आपके मुख्य प्रोजेक्ट में आप लाइब्रेरी का उपयोग करना चाहते हैं, प्रॉपर्टीज -> एंड्रॉइड पर भी जाएं और निर्भरता की सूची में नया जोड़ा myProjectLib जोड़ें।

एएआर फ़ाइल में एक जेएआर फ़ाइल और कुछ संसाधन फाइलें होती हैं (यह मूल रूप से कस्टम फ़ाइल एक्सटेंशन के साथ एक मानक ज़िप फ़ाइल है)। कन्वर्ट करने के लिए यहां दिए गए कदम हैं:

  1. मानक ज़िप निकालने का उपयोग कर एएआर फ़ाइल निकालें (इसे आसान बनाने के लिए * .zip पर इसका नाम बदलें)
  2. निकाली गई फ़ाइलों में class.jar फ़ाइल खोजें
  3. अपनी परियोजना में उस जार फ़ाइल को पसंद करते हैं और उसका उपयोग करें

 The 'aar' bundle is the binary distribution of an Android Library Project. .aar file 
 consists a JAR file and some resource files. You can convert it
 as .jar file using this steps

1) Copy the .aar file in a separate folder and Rename the .aar file to .zip file using 
 any winrar or zip Extractor software.

2) Now you will get a .zip file. Right click on the .zip file and select "Extract files". 
 Will get a folder which contains "classes.jar, resource, manifest, R.java,
 proguard(optional), libs(optional), assets(optional)".

3) Rename the classes.jar file as yourjarfilename.jar and use this in your project.

नोट: यदि आप अपनी .aar फ़ाइल से केवल .jar फ़ाइल प्राप्त करना चाहते हैं, तो उपर्युक्त तरीके का उपयोग करें। मान लीजिए कि अगर आप .jar फ़ाइल के साथ manifest.xml और संसाधनों को शामिल करना चाहते हैं तो इसका मतलब है कि आप बस अपनी .aar फ़ाइल पर राइट क्लिक कर सकते हैं और उसे .zip के रूप में सहेजने के बजाय सीधे .jar फ़ाइल के रूप में सहेज सकते हैं। आपके द्वारा निकाली गई .jar फ़ाइल को देखने के लिए, जेडी-जीयूआई (जावा डीकंपेलर) डाउनलोड करें । फिर अपनी जेडी_जीआईआई में अपनी .jar फ़ाइल खींचें और छोड़ें, आप .clava फ़ाइल को .java फ़ाइल जैसे पठनीय प्रारूपों में देख सकते हैं।





aar