java - एटी बिल्ड स्क्रिप्ट के माध्यम से जावा में कमांड लाइन तर्क पास करना




ant command-line-arguments (4)

चींटी स्क्रिप्ट में अच्छा नहीं है लेकिन मैं नीचे की तरह कुछ करता हूं:

<target name="execute">
    <echo> Running MyClass ......... </echo>
    <java classname="pkg.MyClass" classpathref="libs">          
        <arg value="val1" /> <!-- command line args -->
        <arg value="val2" />
        <arg value="val3" />
        <env key="k1" value="v1" /> <!-- set environmental value -->
    </java>     
</target>

यदि आप एक्लिप्स का प्रयोग कर रहे हैं, तो आपको जावा टैग के अंतर्गत पॉपअप में सुझाव मिलेंगे। मुझे कुछ अधिक पसंद आया: <sysproperty/>, <syspropertyset></syspropertyset>, <jvmarg/>

निम्नलिखित कमांड चलाने पर:

ant targetname -Dk1=v1 -Dk2=v2

मैं चाहता हूं कि कमांड लाइन पैरामीटर java नीचे जाए, जैसे java whatever -Dk1=v1 -Dk2=v2

मुझे इन मानकों को जावा कोड से System.getProperty या System.getenv के साथ एक्सेस करने की आवश्यकता है I

ऐसा करने के लिए मुझे मेरी एंट बिल्ड स्क्रिप्ट में क्या लिखने की आवश्यकता है?

या क्या मुझे कुछ अन्य दृष्टिकोण पूरी तरह से लेना चाहिए?


मुझे यकीन नहीं है कि आप इन मानों को कैसे पारित करना चाहते हैं, लेकिन कई तंत्र हैं:

  • सिस्टम गुणों को सेट करने के लिए <sysproperty> का उपयोग करें <sysproperty> आप सेट करना चाहते हैं:
  • अपने जावा वर्ग में कमांड लाइन तर्कों को पारित करने के लिए <arg> का उपयोग करें
  • अपने जावा कमांड में तर्क को पास करने के लिए <jvmarg> का उपयोग करें
  • यदि आप अपने जावा कार्य काटा, तो आप पर्यावरण चर भी सेट कर सकते हैं। अगर आप जावा टास्क का कांटा नहीं करते हैं, तो इन्हें अनदेखा कर दिया जाता है

इस:

 $ foo=bar; java -Xlingc com.example.foo.bar -Dsys1=fu -Dsys2=barfu -arg1 -arg2 bar

हो जाता है:

<java classname="com.example.foo.bar"
    fork="true">
    <env key="foo" value="bar"/>
    <sysproperty key="sys1" value="fu"/>
    <sysproperty key="sys2" value="barfu"/>
    <jvmarg value="-Xlingc"/>
    <arg value="-arg1"/>
    <arg value="-arg2"/>
    <arg value="bar"/>
</java>

उम्मीद है कि उदाहरण मदद करता है


अपने <java> कार्य में नेस्टेड <arg> तत्वों का उपयोग करें:

<java classname="test.Main">
     <arg value="${k1}"/>
     <arg value="${k2}"/>
     <classpath>
       <pathelement location="dist/test.jar"/>
       <pathelement path="${java.class.path}"/>
     </classpath>
   </java>

स्ट्रिंग संसाधनों के अंदर एचटीएमएल टैग का प्रयोग करें: -

<resources>
<string name="string_resource_name"><![CDATA[<b> Your text </b>]]> </string>
</resources>

और स्ट्रिंग संसाधनों से बोल्ड टेक्स्ट प्राप्त करें जैसे: -

private Spanned getSpannedText(String text) {
        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) {
            return Html.fromHtml(text, Html.FROM_HTML_MODE_COMPACT);
        } else {
            return Html.fromHtml(text);
        }
    }


 String s = format(context.getResources().getString(R.string.string_resource_name));
 textView.setText(getSpannedText(s));




java ant command-line-arguments