2011-06-10 16 views
7

मैं JavaMail एपीआई का उपयोग कर कुछ काम कर रही हैं और मुझे एन्कोडिंग के पार चला गया है जो जावा देशी रूप का समर्थन नहीं करता (डिजाइन द्वारा), इस तरह के UTF7/यूनिकोड-1-1-utf- के रूप में 7। विशेष रूप से है कि एन्कोडिंग के लिए मैं एक जावा Charset और UTF7 के लिए CharsetProvider की JUTF7 कार्यान्वयन पाया। हालांकि, jutf7.jar को मेरे क्लासपाथ में जोड़ा गया है, मुझे अभी भी UnsupportedEncodingException एस मिल गया है, और यूनिकोड -1-1-यूटीएफ -7 निश्चित रूप से JUTF7 के उपनामों में से एक है।लोड हो रहा है एक जावा वर्णसेट मैन्युअल

क्या Charset मैन्युअल रूप से लोड करने का कोई तरीका है या यह सुनिश्चित करें कि Charset लोड हो रहा है ताकि मैं इसे कारण के रूप में बाहर कर सकूं?

उत्तर

6

वहाँ थोड़ा classpath में आवश्यक कक्षाएं लगाने से एक नया वर्णसेट का उपयोग कर, के अलावा करने के लिए अधिक है। Javadocs के शब्दों में:

एक चारसेट प्रदाता ही एक प्रदाता-विन्यास फाइल java.nio.charset.spi.CharsetProvider संसाधन निर्देशिका META-INF/सेवाओं में नाम के साथ दिखाता है। फ़ाइल पूरी तरह से योग्य ठोस चारसेट प्रदाता वर्ग के नाम, प्रति पंक्ति एक की एक सूची शामिल करना चाहिए। [...]

(http://download.oracle.com/javase/6/docs/api/java/nio/charset/spi/CharsetProvider.html)

जार में इस विशेष फ़ाइल मौजूद है?

+0

मुद्दा यह था कि साथ परीक्षण किया गया है, धन्यवाद की जरूरत है! अपाचे मैवेन को स्थापित करने से बचने के अपने प्रयासों में मैंने कुछ त्वरित स्रोत माइग्रेशन किया था। परिणामस्वरूप मैंने गलती से विशेष फ़ाइल को छोड़ दिया। मैंने अब मैवेन के साथ एक जार बनाया है, और मुद्दा हल हो गया है। – Keeblebrox

2

तुम्हें यकीन जार मुख्य classloader से भरी हुई है बनाना चाहिए। आप जार को JVM की jre/lib/ext एक्सटेंशन निर्देशिका में जोड़कर या मुख्य प्रोग्राम के क्लासपाथ में जोड़कर इसे प्राप्त कर सकते हैं। उदाहरण के लिए यदि आप टोमकैट का उपयोग कर रहे हैं, तो -cp /path/to/jutf7.jar को टॉमकैट की स्टार्टअप स्क्रिप्ट में जोड़ें।

इसी तरह, आप स्केला आरईपीएल से jutf7 का परीक्षण करना चाहते हैं, तो आप इसे शुरू करने के रूप में इस

env JAVA_OPTS="-cp /path/to/jutf7-1.0.0.jar" scala 

Java HotSpot(TM) 64-Bit Server VM (build 20.8-b03-424, mixed mode)

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