2012-03-02 14 views
5

मेरा कोड एक JAR फ़ाइल के रूप में तैनात किया जा रहा है। JAR में एक निर्देशिका lib है जिसमें कई तृतीय-पक्ष JARs हैं जिनके लिए मेरे कोड की आवश्यकता है। मैंने MANIFEST.MF के माध्यम से, एंटी का उपयोग करके classpath पर इन्हें जोड़ा है।वर्तमान निर्देशिका को JAR फ़ाइल के क्लासपाथ में जोड़ना

Manifest-Version: 1.0 
Ant-Version: Apache Ant 1.7.0 
Created-By: 20.5-b03 (Sun Microsystems Inc.) 
Main-Class: com.package.Class 
Class-Path: ../lib/c3p0-0.9.1.2.jar ../lib/dbunit-2.4.8.jar ../lib/gua 
va-10.0.1.jar ../lib/hsqldb.jar ../lib/javax.jms.jar ../lib/log4j-1.2 
.16.jar ../lib/mockito-all-1.9.0.jar ../lib/ojdbc14.jar ../lib/slf4j- 
api-1.6.4.jar ../lib/slf4j-log4j12-1.6.4.jar ../lib/xmlunit-1.3.jar 

वहाँ भी एक queries.properties फ़ाइल जो जार की जड़ में है।

दो और संपत्तियां हैं जो आवश्यक हैं। मैं इन्हें उसी फ़ाइल में जार फ़ाइल के रूप में और कोड के लिए उन्हें ढूंढने में सक्षम होना चाहता हूं। मुझे लगता है कि कोड इन गुण फ़ाइलों को ढूँढने में सक्षम होने के लिए, उन्हें classpath में होना चाहिए। इसलिए मुझे JAR फ़ाइल की निर्देशिका classpath पर जोड़ने की आवश्यकता है।

सबसे पहले, क्या यह सही तरीका है कि मैं गुण फ़ाइलों का पता लगाने के वैकल्पिक साधनों का उपयोग करूँ?

यदि यह सही है, तो मैं MANIFEST.MF में क्लासपाथ में JAR की वर्तमान निर्देशिका को जोड़ने के लिए चींटी का उपयोग कैसे करूं? मैंने manifestclasspath चींटी कार्य का उपयोग कर lib निर्देशिका में classpath में जेएआर को जोड़ा।

+0

* * "मैं इन JAR फ़ाइल के रूप में एक ही डायरेक्टरी में चाहते हैं" अगर मैं कार्यक्रम के उपयोगकर्ता हूँ, मैं उन्हें पसंद करते हैं 1 होने के लिए) 'User.home' की उप-निर्देशिका में (जहां वे मेरे बैक-अप स्क्रिप्ट के लिए आसानी से पहुंच योग्य हैं, सॉफ़्टवेयर के विपरीत, जिसका बैक अप नहीं लिया गया है)। या .. 2) आवेदन स्थापना पर मेरे द्वारा चुने गए स्थान पर (फ़ाइल-चयनकर्ता का उपयोग करना)। –

+0

@AndrewThompson आपके योगदान के लिए धन्यवाद। आवेदन को एक निर्धारित कार्य के रूप में निष्पादित किया जा रहा है और किसी भी उपयोगकर्ता हस्तक्षेप की आवश्यकता नहीं है। यह तैनाती में सहायता के लिए गुण फ़ाइलों और जेएआर फ़ाइल को एक साथ रखने का एक और मामला है। – mip

उत्तर

5

क्या आपने वर्तमान निर्देशिका के संदर्भ के रूप में . जोड़ने का प्रयास किया है?

<jar jarfile="dummy.jar"> 
      <manifest> 
        <attribute name="Main-Class" value="com.package.Class"/> 
        <attribute name="Class-Path" value=". ${jar.class.path}"/> 
      </manifest>    
    </jar> 

कृपया यह भी देखना Executable jar won't find the properties files

+0

धन्यवाद। वह काम किया। – mip

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