2011-01-17 4 views
6

मैं त्रुटि हो रही है:विफलता का कारण क्या है: "jarsigner: {file} को {file} का नाम बदलने का प्रयास .org विफल हुआ" चींटी के साथ जार पर हस्ताक्षर करते समय?

[signjar] jarsigner: attempt to rename C:\workspace\line_editor\lib\icon.jar to C:\workspace\line_editor\lib\icon.jar.orig failed

जब स्वयं करने का प्रयास कर ग्रहण अंदर चींटी के साथ जार का एक सेट करें। चींटी निर्माण ने इस परियोजना में और अन्य परियोजनाओं में समान कोड में ठीक काम किया है। मैंने कोड में कुछ छोटे बदलाव किए और पुनर्निर्माण करने और इस त्रुटि को प्राप्त करने की कोशिश की।

<target name="sign" depends="jar" description="Signs Jars"> 

     <genkey keystore="myKeystore1" alias="something" storepass="somethingpass" 
      dname="CN=Classification, OU=NAPA, O=GPC, C=US"/> 


     <signjar keystore="myKeystore1" alias="something" storepass="somethingpass"> 
      <fileset file="${web.dir}/${jar.name}" /> 
      <fileset dir="${lib.dir}"> 
       <include name="*.jar"/> 
      </fileset> 
     </signjar> 
    </target> 

मैं प्रोजेक्ट को हटा और हमारे भंडार से इसे फिर से नीचे खींच लिया:

यहाँ संबंधित चींटी लक्ष्य है। तो यह अन्य परियोजनाओं के रूप में एक ही डिफ़ॉल्ट परियोजना सेटिंग्स है कि यह हिस्सा असफल नहीं है। मैंने प्रश्न में .jar को देखा और यह केवल पढ़ने के लिए नहीं था। मैंने नाम बदल दिया और अगली वर्णमाला .jar फ़ाइल भी असफल रही। इस फ़ोल्डर में .jars तक पहुंचने वाला कोई प्रोग्राम नहीं चल रहा है।

कोई सुझाव देने के लिए?

+0

अधिक विशिष्ट त्रुटि संदेश के साथ अद्यतन प्रश्न। – jzd

उत्तर

7

एक संभावना यह है कि जार - जो 'lib' निर्देशिका में है - आपके निर्माण के दौरान उपयोग में एक कक्षा में है। ${lib.dir} बिल्डफाइल में उपयोग किए गए क्लासपाथ पर शामिल है?

आप हस्ताक्षरित जार जमा करने के लिए एक अलग निर्देशिका बना सकते हैं, और destdir विशेषता का उपयोग करके 'साइनजर' कार्य को निर्दिष्ट कर सकते हैं।

+0

हां मैं इसे निर्माण में उच्च श्रेणी में कक्षा का उपयोग भी कर रहा था। मैंने आपके सुझाव का पूरी तरह से काम किया। यकीन नहीं है कि मुझे अतीत में समस्या क्यों नहीं आई है। – jzd

+0

मैंने देखा कि यह तब हुआ जब नेटबीन्स (8.1, हाँ यह अभी भी एक मुद्दा है) खुला था और जार अपने क्लासपाथ में था। मुझे क्लासपाथ से जार को हटाना पड़ा और नेटबीन्स को उस पर जर्सिग्नर चलाने के लिए पुनरारंभ करना पड़ा (या नेटबीन बंद करें और इसे किसी अन्य आईडीई से चलाएं)। –

0

यह की निर्देशिका में jarsigner.exe प्रोजेक्ट के लिए चुना गया JRE है। यदि जेआरई सिर्फ एक जेआरई (जेडीके नहीं है) यह कार्यक्रम मौजूद नहीं होगा।

प्रोजेक्ट-विशिष्ट जेआरई सेट करने का प्रयास करें और सुनिश्चित करें कि यह वास्तव में एक जेडीके है।

+0

जहां तक ​​मैं चुना गया जेआरई बता सकता हूं वह एक जेडीके है। अन्य परियोजनाएं एक ही ऑपरेशन करने में ठीक काम करती हैं, मैं यह देखने के लिए प्रोजेक्ट विशिष्ट सेटिंग्स में खुदाई रखूंगा कि मुझे कोई अंतर मिल सकता है या नहीं। – jzd

+0

मैं एक और अधिक विशिष्ट त्रुटि संदेश खोजने और मेरे प्रश्न को अद्यतन करने में सक्षम था। ऐसा लगता है कि jarsigner को .jar फ़ाइल का नाम बदलने में परेशानी हो रही है। – jzd

2

मुझे एक ही समस्या थी। अपने आप को जार फ़ाइल का नाम बदलने का प्रयास करें। यदि इसका नाम बदला नहीं जा सकता है, तो आप आमतौर पर यह पता लगा सकते हैं कि किस एप्लिकेशन पर फ़ाइल लॉक है। सबसे अधिक संभावना जावा के कुछ उदाहरण। सभी जावा-आधारित ऐप्स से बाहर निकलें और पुनः प्रयास करें। (यह सुनिश्चित करने के लिए कार्य प्रबंधक का प्रयोग करें कि आपका जावा/जाव नहीं चल रहा है।) उसके बाद, इसे काम करना चाहिए।

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