通过 ant 构建脚本将命令行参数传递给 Java [英] Passing command line arguments to Java via ant build script

查看:36
本文介绍了通过 ant 构建脚本将命令行参数传递给 Java的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

在运行以下命令时:

ant targetname -Dk1=v1 -Dk2=v2

我希望将命令行参数传递给 java,例如 java 无论如何 -Dk1=v1 -Dk2=v2.

I want the command line parameters passed down to java, like java whatever -Dk1=v1 -Dk2=v2.

我需要使用 System.getPropertySystem.getenv 从 Java 代码访问这些参数.

I need to access these parameters from Java code with System.getProperty or System.getenv.

我需要在我的 ant 构建脚本中编写什么来实现这一点?

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:

  • 使用传递你需要设置的系统属性:
  • 使用 将命令行参数传递给 Java 类
  • 使用 将参数传递给 Java 命令本身
  • 如果你 fork 你的 Java 任务,你也可以设置环境变量.如果您不 fork Java 任务,这些将被忽略
  • Use <sysproperty> to pass system properties you need to set:
  • Use <arg> to pass command line arguments to your Java class
  • Use <jvmarg> to pass arguments to your Java command itself
  • If you fork your Java task, you can also set environment variables too. These are ignored if you don't fork the Java task

这个:

 $ 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>

希望这个例子有帮助

这篇关于通过 ant 构建脚本将命令行参数传递给 Java的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆