2012-06-29 5 views
5

Je veux passer des arguments de ligne de commande à mon programme java qui est invoqué par une fausse fourmi (nous avons notre propre script ant dans perl qui appelle à un moment donné la fourmi réelle). Donc ce que je veux faire est appeler mon programme comme celui-ci:passer des arguments à java via ant

./ant program_name arg1 arg2

J'ai en ce moment une cible fourmi pour mon programme, mais au lieu de passer les arguments de la ligne de commande Je suis Hard- les coder dans le fichier de construction comme celui-ci:

<arg line="arg1 arg2"/>

Toutes les idées sur h ow puis-je utiliser des variables dans le fichier de construction et les charger à partir des arguments de la ligne de commande, puis les utiliser dans mon programme java?

Répondre

4

Le plus simple serait que votre script passe ensuite dans les propriétés système via -D. Votre fichier de construction ant peut ensuite les utiliser pour définir les propriétés ant qui peuvent être définies dans l'étiquette <arg> (ou référencées directement, bien que ma préférence soit de définir les propriétés ant, mais cela peut être plus par habitude que pour tout raison technique).

+0

Je ne sais pas grand-chose sur la fourmi. mais le script de fourmi que nous avons est d'appeler la vraie fourmi avec quelque chose comme ceci: my $ cmdline = "$ ENV {JAVA_HOME}/bin/java -Xmx512m -Djava.ext.dirs =" $ ENV {EXT_DIRS} \ "- Dant.home = $ ENV {ANT_HOME} org.apache.tools.ant.Main -emacs $ inp "; où $ inp est la commande entière que nous donnons à la ligne de commande. Est-ce ce dont vous parliez? – comatose

+0

@comatose Probablement. Mon approche consistait à séparer '$ inp' et à les transformer en paramètres' -D'. Je ne sais pas comment accéder aux paramètres de ligne de commande dans le fichier de construction, bien que si vous avez passé du temps avec le manuel Ant, cela pourrait être très facile - je ne l'ai jamais fait. –

Questions connexes