2010-03-25 2 views
0

Я новичок в написании целей муравьев. Мне нужно передать 3 аргумента из командной строки в java-программу. Все это может быть необязательным и может содержать пробелы. Как я могу это сделать с помощью цели муравья.нужна помощь в написании муравьиной цели

Я попытался использовать, но если он ограничивает аргументы пробелом. Итак, если мой первый аргумент имеет пробел, то он принимает слово после пробела как второй аргумент.

Я также попытался с помощью Это занимает пространства, но делает аргументы обязательными.

Im мой код java, я должен установить значения по умолчанию для этих аргументов, если они отсутствуют.

Как я могу это сделать.

ответ

0

Если у вас есть JAR файл готов, вы можете сделать эту цель:

<target name="runJar"> 
    <java jar="/home/phil/application.jar" failonerror="true" fork="true" inputstring=""> 
     <arg value="arg1" /> 
     <arg value="arg2" /> 
     <arg value="arg3" /> 
    </java> 
</target> 

Если вам нужно собрать, а затем запустить, а затем дать этот выстрел:

<target name="buildJava"> 
    <javac srcdir="srcDir" destdir="binDir" /> 
</target> 
<target name="runJava" depends="buildJava"> 
    <java classname="classname" failonerror="true" fork="true" inputstring=""> 
    <arg value="arg1"/> 
    <arg value="arg2"/> 
    <arg value="arg3"/> 
    <classpath> 
     <pathelement path="binDir"/> 
    </classpath> 
    </java> 
</target> 

В failonerror указывает что если вы сделаете System.exit(1), это приведет к сбою сборки.

Изменить, чтобы добавить вывод

я класс выплюнуть аргументы в скобки первое, что при входе в класс, так что вы можете видеть, что это относится к Spaces так, как вы хотите. Я использовал arg1 как "arg1 2 3"

buildJava: 

runJava: 
[java] Arg = [arg1 2 3] 
[java] Arg = [arg2] 
[java] Arg = [arg3] 
0

Ваш вопрос не очень понятно мне. Но я думаю, что вы хотите в java-программе, вы можете передать аргумент. Если у вас есть только один аргумент, он делает другие два в качестве значения по умолчанию. Итак, вы можете сделать что-то подобное. Я не пробовал это, хотя

<!-- These properties will no set since you are passing argument from -D param 

Они установлены только на пустой, когда нет аргументов. ->

<target name="run"> 
     <java jar="YourJavaClassOrJAR" failonerror="true" fork="true" inputstring=""> 
      <arg value="${arg1}" /> 
      <arg value="${arg2}" /> 
      <arg value="${arg3}" /> 
     </java> 
    </target> 

и из командной строки, вы можете сказать, ant -Darg1=xxx

Смежные вопросы