On running the following command:
ant targetname -Dk1=v1 -Dk2=v2
I want the command line parameters passed down to java, like java whatever -Dk1=v1 -Dk2=v2.
I need to access these parameters from Java code with System.getProperty or System.getenv.
What do I need to write in my ant build script to make this happen?
Or should I take some other approach altogether?
I'm not sure exactly how you want to pass these values, but there are several mechanisms:
<sysproperty> to pass system properties you need to set:<arg> to pass command line arguments to your Java class<jvmarg> to pass arguments to your Java command itselfThis:
 $ foo=bar; java -Xlingc com.example.foo.bar -Dsys1=fu -Dsys2=barfu -arg1 -arg2 bar
Becomes:
<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>
Hope that example helps
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With