मैं उन सभी एक्सएमएल फाइलों को खोजना चाहता हूं जो मेरे क्लासलोडर को वाइल्डकार्ड पैटर्न का उपयोग करने के बारे में पता है। क्या इसे करने का कोई तरीका है?मैं जावा जार में वाइल्डकार्ड नाम के साथ संसाधन कैसे खोज सकता हूं?
उत्तर
इसे थोड़ा चालबाजी की आवश्यकता है, लेकिन यहां एक प्रासंगिक blog entry है। आप पहले जार के यूआरएल को समझते हैं, फिर जार खोलें और इसकी सामग्री स्कैन करें। मुझे लगता है कि आप `/META-INF/MANIFEST.MF 'की तलाश करके सभी जारों के यूआरएल खोजेंगे। निर्देशिका एक और मामला होगा।
खैर, यह जावा के भीतर से नहीं है, लेकिन
jar -tvf jarname | grep xml$
आप जार में सभी XMLs दिखाएगा।
Unfortuneately में स्निपेट यहीं मैं एक समाधान है कि जावा के भीतर है की जरूरत है। –
एक जेएआर फ़ाइल सिर्फ एक और ज़िप फ़ाइल है, है ना?
ZipSearcher searcher = new ZipSearcher(new ZipInputStream(new FileInputStream("my.jar"))); List xmlFilenames = searcher.search(new RegexFilenameFilter(".xml$"));
चीयर्स:
तो मैं आप http://java.sun.com/javase/6/docs/api/java/util/zip/ZipInputStream.html
का उपयोग कर रहा तरह कुछ सोच रहा हूँ जार-फ़ाइलें पुनरावृति सकता है लगता है। कीथ।
एक स्प्रिंग ApplicationContext
तुच्छता से ऐसा कर सकते हैं:
ApplicationContext context = new ClassPathXmlApplicationContext("applicationConext.xml");
Resource[] xmlResources = context.getResources("classpath:/**/*.xml");
ResourcePatternResolver#getResources, या ApplicationContext देखें।
हाल ही में वसंत में पैटर्न काम नहीं करेगा। जार के अंदर संसाधनों को खोजने के लिए उपसर्ग को 'classpath *:' होना चाहिए। यह कम से कम एक युद्ध फ़ाइल और एक जेआर पुस्तकालय जिसमें एक्सएमएल फाइलें हैं। – Kayaman
List<URL> resources = CPScanner.scanResources(new PackageNameFilter("net.sf.corn.cps.sample"), new ResourceNameFilter("A*.xml"));
अपने pom.xml
<dependency>
<groupId>net.sf.corn</groupId>
<artifactId>corn-cps</artifactId>
<version>1.0.1</version>
</dependency>
यह सबसे आसान समाधानों में से एक प्रतीत होता है। 8-20-2014 के रूप में, नवीनतम संस्करण मेवेन केंद्रीय में 1.1.7 है। –
- 1. मैं एम्बेडेड संसाधन के "पथ" को कैसे खोज सकता हूं?
- 2. मैं जावा जार फ़ाइल से संसाधन फ़ाइल कैसे पढ़ूं?
- 3. संसाधन बंडल के साथ एक जार
- 4. मैं अपने जार फ़ाइल के अंदर से "फ़ोल्डर" संसाधन कैसे प्राप्त कर सकता हूं?
- 5. खोज वाइल्डकार्ड
- 6. मैं पाइथन में उपयोगकर्ता द्वारा परिभाषित खोज तारों में वाइल्डकार्ड का समर्थन कैसे कर सकता हूं?
- 7. मैं लिनक्स में जार कैसे बना सकता हूं?
- 8. मैं .NET के लिए Google कस्टम खोज API के साथ एक खोज कैसे कर सकता हूं?
- 9. फ़ाइल संसाधन के रूप में जावा संसाधन
- 10. मैं थोक खोज कैसे कर सकता हूं और पर्ल के साथ प्रतिस्थापित कैसे कर सकता हूं?
- 11. सोलर वाइल्डकार्ड खोज
- 12. ज्ञात संसाधन नाम के साथ संसाधन आईडी कैसे प्राप्त करें?
- 13. vim - मैं बफर कैसे खोज सकता हूं?
- 14. मेवेन: जार के साथ संसाधन फ़ाइल को कैसे रखा जाए?
- 15. एक संसाधन एक जार
- 16. एसक्यूएल वाइल्डकार्ड खोज - क्षमता?
- 17. मैं जावा में कैसे जुड़ सकता हूं?
- 18. Lucene.Net TermQuery वाइल्डकार्ड खोज
- 19. क्लासपाथ में वाइल्डकार्ड के साथ जावा कॉल करना
- 20. जावा में वाइल्डकार्ड के साथ मौजूद फ़ाइल को कैसे जांचें?
- 21. क्लासपाथ में एक जार के साथ जावा क्लास कैसे चलाएं?
- 22. मैं pgrep में केस असंवेदनशील कैसे खोज सकता हूं?
- 23. मैं एम्बेडेड जेआरबी के साथ रत्न-इन-ए-जार का उपयोग कैसे कर सकता हूं?
- 24. मैं संसाधन पहचानकर्ता कैसे घोंसला कर सकता हूं?
- 25. मैं पर्ल में बाइनरी खोज कैसे कार्यान्वित कर सकता हूं?
- 26. MySQL में डेटाबेस नाम वाइल्डकार्ड के साथ अनुदान?
- 27. मैं अपने प्रोजेक्ट से अनावश्यक संसाधन कैसे हटा सकता हूं?
- 28. मैं वीबी.नेट में एक सरणी कैसे खोज सकता हूं?
- 29. चींटी के जार कार्य द्वारा जार में शामिल होने पर मैं फ़ाइलों का नाम कैसे बदलूं?
- 30. मैं फ़ंक्शन के लिए हैकेज पैकेज कैसे खोज सकता हूं?
ऐसा लगता है कि यह काम करेगा, लेकिन मुझे इच्छित फ़ाइल नामों को प्राप्त करने के लिए उचित मात्रा में खोज शामिल होगी। मैं सोच रहा हूं कि फाइल को उस समय में बनाना आसान होगा जिसमें फाइलें हैं जिन्हें मैं देख रहा हूं। इस नई फ़ाइल का एक ज्ञात नाम होगा और क्लासलोडर का उपयोग करके पाया जा सकता है। –