2009-12-27 14 views
8

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

<target name="run"> 
    <java jar="build/jar/ShoutGen.jar" fork="true"/> 
    <arg line="/home/munderwo/workspace/ShoutGen-Java/ShoutGen.conf"/> 
</target> 

जब मैं यह करने के लिए और इसे ग्रहण के भीतर से चलाने मैं

Buildfile: /home/munderwo/workspace/ShoutGen-Java/build.xml 
run: 
    [java] No config file passed as an argument. Please pass a configuration file 
    [java] Java Result: 16 

BUILD FAILED 
/home/munderwo/workspace/ShoutGen-Java/build.xml:24: Problem: failed to create task or type arg 
Cause: The name is undefined. 
Action: Check the spelling. 
Action: Check that any custom tasks/types have been declared. 
Action: Check that any <presetdef>/<macrodef> declarations have taken place. 

जावा से त्रुटि उत्पादन मेरी कोडित त्रुटि अर्थ है प्राप्त करने की कोशिश "आप एक में सफल नहीं हुआ है कॉन्फ़िगरेशन फ़ाइल को एक तर्क के रूप में "जो त्रुटि की गलती का बैक अप लेता है" समस्या: कार्य बनाने में विफल या तर्क टाइप करें "।

तो आप एंट के भीतर से निष्पादित जेएआर फ़ाइल को कैसे तर्क देते हैं? क्या यह ऐसा कुछ नहीं है जिसे आप करना चाहते हैं?

उत्तर

16

<arg> टैग <java> टैग का बच्चा होना चाहिए। इस तरह:

<target name="run"> 
    <java jar="build/jar/ShoutGen.jar" fork="true"> 
     <arg line="/home/munderwo/workspace/ShoutGen-Java/ShoutGen.conf"/> 
    </java> 
</target> 

अपने प्रश्न <arg> में <java> का एक भाई है और तर्क लाइन java आदेश को पास नहीं हो।

6

आपका तर्क कथन जावा कार्य में ठीक तरह से घोंसला नहीं है। यह

<java jar="..."> 
    <arg line="..." /> 
</java> 
-2

आप कुछ इस तरह से यह कर सकते हैं की जरूरत है, इसलिए कोई तर्क निर्दिष्ट कर रहे हैं अगर यह वैसे भी जारी रहेगा:

public static void main(String[] args) { 
    try { 
     String one = args[0]; 
     String two = args[1]; 
    } 
    catch (ArrayIndexOutOfBoundsException e){ 
     System.out.println("ArrayIndexOutOfBoundsException caught"); 
    } 
    finally { 

    } 
} 
+0

नहीं एक मरे हुए घोड़े को हरा, लेकिन मैं नहीं दिख रहा है यह समस्या को कैसे हल कर रहा है। – Dumpcats