2012-02-14 13 views
6

जब मैं निम्न आदेश चलाने का प्रयास:java.io.IOException क्या है: अमान्य हेडर फ़ील्ड?

jar cvfm myjar.jar manifest.txt *.class 

मैं निम्नलिखित अपवादों मिलती है:

java.io.IOException: invalid header field 
    at java.util.jar.Attributes.read(Attributes.java:410) 
    at java.util.jar.Manifest.read(Manifest.java:199) 
    at java.util.jar.Manifest.<init>(Manifest.java:69) 
    at sun.tools.jar.Main.run(Main.java:171) 
    at sun.tools.jar.Main.main(Main.java:1176) 

क्या कारण मैं इन अपवादों हो रही है हो सकता है?

उत्तर

6

मुझे लगता है कि आपकी मेनिफेस्ट फ़ाइल में कोई समस्या है। यह देखने के लिए एक नज़र डालें कि क्या आपके पास हेडर वैरिएबल के नाम पर टाइपो है या नहीं।

+0

क्या एक हैडर चर रहा है के बजाय jar cvfm manifest.txt myjar.jar *.class क्या करना था करना है? –

+0

इसे ध्यान से पढ़ें: http://docs.oracle.com/javase/tutorial/deployment/jar/ – duffymo

0

"जार -cvmf" "जार cvfm" के बजाय ऊपर त्रुटि को हल करना चाहिए

1

चेक कि आपके manifest.txt फ़ाइल इस तरह से सामग्री शामिल है:

मुख्य-क्लास: < "पैकेज -नाम ">। < "मुख्य श्रेणी-नाम"> कक्षा < "न्यूलाइन">

ध्यान दें कि पार्सिंग के लिए नई लाइन/कैरिज-रिटर्न आवश्यक है।

मैं एक ऐसी ही समस्या हल के लिए इस लिंक http://docs.oracle.com/javase/tutorial/deployment/jar/appman.html

0

का संदर्भ लें। यह हमेशा पहला मैनिफेस्ट हेडर बनाता है जो जेएआर को "अमान्य हेडर" IOException फेंक देता है। तो मुझे लगता है कि यह एक utf-8 फ़ाइल का बीओएम बनाता है जो जार समझ में नहीं आता है। हालांकि मुझे लगता है कि मैंने कहीं पढ़ा है कि एक मेनिफेस्ट फ़ाइल कहने के लिए utf-8 एन्कोड किया जाना चाहिए, मैंने अपनी एमएफ फ़ाइल को विंडोज़ के नोटपैड के साथ एएनएसआई में सहेजा, और जेएआर ने हेडर नाम के बारे में शिकायत करना बंद कर दिया।

0

एक बेवकूफ गलती (जो मैंने किया था) jar cvfm myjar.jar manifest.txt *.class

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