нужна помощь в написании цели муравья - PullRequest
0 голосов
/ 25 марта 2010

Я новичок в написании муравьиных целей.Я должен передать 3 аргумента из командной строки в программу Java.Все это может быть необязательным и может иметь пробелы.Как я могу сделать это, используя цель муравья.

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

Я также пытался использовать Он принимает пробелы, но делает аргументы обязательными.установить значения по умолчанию для этих аргументов, если какой-либо из них отсутствует.

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

Ответы [ 2 ]

0 голосов
/ 03 апреля 2010

Ваш вопрос мне не очень понятен. Но я думаю, что вы хотите в 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

0 голосов
/ 25 марта 2010

Если у вас есть готовый файл 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), это приведет к сбою сборки.

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

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

buildJava:

runJava:
[java] Arg = [arg1 2 3]
[java] Arg = [arg2]
[java] Arg = [arg3]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...