Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/ant/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何将主机和端口参数传递到ant中以供Java主函数使用_Java_Ant - Fatal编程技术网

如何将主机和端口参数传递到ant中以供Java主函数使用

如何将主机和端口参数传递到ant中以供Java主函数使用,java,ant,Java,Ant,我很难找到如何在ant目标中正确使用args 我有一个ant目标,“我们的客户机”,它应该有两个(或零个)参数,一个主机和一个端口供客户机侦听。我认为通过键入以下内容可以很容易地将参数传递给shell: ant our-client -Dhost.arg=127.0.0.1 -Dport.arg=8081 这似乎不起作用。在我的程序的主要功能中,我有一个记录器,它打印出传入的主机和端口。在我解释了我的ant构建文件中的内容之后,我将开始讨论这个问题 这是我为客户编写的目标 <target

我很难找到如何在ant目标中正确使用args

我有一个ant目标,“我们的客户机”,它应该有两个(或零个)参数,一个主机和一个端口供客户机侦听。我认为通过键入以下内容可以很容易地将参数传递给shell:

ant our-client -Dhost.arg=127.0.0.1 -Dport.arg=8081
这似乎不起作用。在我的程序的主要功能中,我有一个记录器,它打印出传入的主机和端口。在我解释了我的ant构建文件中的内容之后,我将开始讨论这个问题

这是我为客户编写的目标

<target name="our-client" depends="package" description="compiles, packages, and runs the student client">
    <java jar="${java.dist}/catan-client.jar" dir="${java.dist}" fork="yes">
        <arg value="${host.arg}"/>
        <arg value="${port.arg}"/>
        <sysproperty key="com.sun.management.jmxremote" value=""/>
        <assertions>
            <enable/>
        </assertions>
    </java>
</target>
命令行始终显示:

INFO: host: localhost, port: 8081
我想我一定是把ant命令调用搞砸了。在我看来,它忽略了输入,并使用每个属性的默认值


感谢您的帮助。

问题在于使用PowerShell。尽管ant命令在命令提示符下工作,但它不会像在PowerShell中那样工作。 在PowerShell中,如果参数名称中有句点(“.”),PowerShell将把它作为其他内容读取(可能是另一个ant命令)。相反,尝试这样做:

ant our-client "-Dhost.arg=127.0.0.1" "-Dport.arg=8081"

-Dhost=127.0.0.1-Dport=8081
设置属性
host
port
,而不是
host.arg
port.arg
。请使用
${host}
${port}
引用命令行参数。很抱歉。我打错命令了。我想打字
-Dhost.arg=127.0.0.1-Dport.arg=8081
我将修复我的帖子。
INFO: host: localhost, port: 8081
ant our-client "-Dhost.arg=127.0.0.1" "-Dport.arg=8081"