2009-02-11 11 views
32

मैं jython -cp FOO:BAR:BAZ argle.py के समान कुछ करना चाहता हूं।

अगर मैं $CLASSPATH करने के लिए FOO, BAR, और BAZ जोड़ने इस काम करता है। मैंने उन्हें रन-टाइम पर sys.path पर जोड़ने की कोशिश की, लेकिन यह जार के लिए काम नहीं करता है। यह काम करता है यदि मैं विस्तारित जार के लिए रनटाइम पर sys.path पर पथ जोड़ता हूं। जार फ़ाइलों को विस्फोट करने के लिए कोई आसान विकल्प है? इस स्क्रिप्ट को चलाने वाले प्रत्येक उपयोगकर्ता के लिए $CLASSPATH बढ़ाना एक स्वीकार्य विकल्प नहीं है।

धन्यवाद।

+0

मैं यह भी जानना चाहता हूं! मैंने ज्योथन स्टार्टअप स्क्रिप्ट को देखा, लेकिन मेरा बैश इसे समझने के लिए पर्याप्त नहीं है। –

उत्तर

44

आप -D विकल्प का उपयोग कर सकते हैं python.path स्थापित करने के लिए:

jython -Dpython.path=FOO:BAR:BAZ argyle.py 
+8

एनबी निष्पादित करने के लिए खोल से 'jython' कमांड का उपयोग कर रहा हूं: विंडोज़ पर कोलन': 'सेपरेटर को सेमी-कॉलन' के साथ बदलें; ' विभाजक। jython -Dpython.path = FOO; बार; बीएजेड argyle.py – monojohnny

+1

विंडोज़ पर डबल बैकस्लैश \\ का उपयोग करते समय पथ निर्दिष्ट करते हैं, और यदि पथ नाम में रिक्त स्थान डबल कोट्स के साथ घिरा हुआ है। पता नहीं है कि पिछला स्लैश/आवश्यक है या नहीं। मुझे चीज़ों के बिना काम मिल जाता है। – Paolo

3

आप एक बड़ा जार बना सकते हैं जिसमें सभी संबंधित वर्ग शामिल हैं।

<target name="jar"> 
    <mkdir dir="build/jar"/> 
    <unjar src="lib/jython.jar" dest="${classes.dir}" /> 
    <unjar src="lib/FOO.jar" dest="${classes.dir}" /> 
    <unjar src="lib/BAR.jar" dest="${classes.dir}" /> 
    <unjar src="lib/BAZ.jar" dest="${classes.dir}" /> 

    <jar destfile="build/jar/bigjython.jar" basedir="${classes.dir}"> 
     <manifest> 
      <attribute name="Main-Class" value="${main-class}"/> 
     </manifest> 
    </jar> 
</target> 
+0

अब bigjython.jar का उपयोग करके मैं अपनी स्क्रिप्ट कैसे चला सकता हूं? –

+0

bigjython.jar मूल jython.jar प्लस अपने अतिरिक्त जार शामिल करने के लिए था। तो अंत में bigjython जार jython.jar के रूप में काम करना चाहिए, लेकिन -पीपी पैरामीटर की आवश्यकता के बिना। – axelclk

+1

मैं jython.jar का उपयोग नहीं कर रहा हूं - मैं argle.py –

4

जावा -cp JAR1: JAR2: jython.jar org.python.util.jython pythonScript निम्नलिखित चींटी टुकड़ा विचार से पता चलता .py लिनक्स और मैकिंतोश दोनों पर काम करता है। विंडोज़ पर, अर्धविरामों के लिए कक्षाओं में कोलन को स्वैप करें और आपको सुनहरा होना चाहिए।

17

jython आदेश java आदेश के माध्यम से तर्क गुजर का समर्थन करता है ... तो:

jython -J-cp JAR1:JAR2 --print 

ऊपर बाहर प्रिंट होगा:

jython -J-cp JAR1:JAR2 

आप --print स्विच जोड़कर जिसके परिणामस्वरूप आदेश की पुष्टि कर सकते इसे सक्रिय करने के बजाय वास्तविक जावा कमांड।

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

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