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
Java 在Ant中传递分号作为参数_Java_Ant_Escaping - Fatal编程技术网

Java 在Ant中传递分号作为参数

Java 在Ant中传递分号作为参数,java,ant,escaping,Java,Ant,Escaping,我想在Ant任务中将“;;”字符串作为字符串参数传递: <mytask param=";;;"/> 和蚂蚁任务: <taskdef name="mytask" classpath="build/lib/CustomTasks.jar" classname="MyTask"/> <mytask value=";;;"/> 要转义分号,请使用:和#59 有关完整列表,请参阅: 我对这个样本没有任何问题: <target name="test_pas

我想在Ant任务中将“;;”字符串作为字符串参数传递:

<mytask param=";;;"/>
和蚂蚁任务:

<taskdef name="mytask" classpath="build/lib/CustomTasks.jar"
   classname="MyTask"/>
<mytask value=";;;"/>

要转义分号,请使用:
和#59

有关完整列表,请参阅:

我对这个样本没有任何问题:

<target name="test_passing_params">
    <antcall target="test_echo">
        <param name="param1" value=";;;"/>
        <param name="param2" value="{"/>
    </antcall>
</target>
<target name="test_echo">
    <echo>param1: ${param1}</echo>
    <echo>param2: ${param2}</echo>
</target>

param1:${param1}
param2:${param2}
输出:

回声
参数1:
回声
参数2:{


在执行
mytask
task时可能会出现问题?

关于向ant传递特殊字符的一般说明:

我曾经向ant SQL任务传递密码,但在特殊字符上,如@$#%^&*!

使用&\amp;切换&有效,但其他字符,如$#失败

最后,我直接在ant构建文件中替换密码变量字符串(使用任何搜索替换脚本,如Linux的sed),而不是使用-D将参数发送到脚本


因此,如果可能的话,不要浪费时间转义或切换找到的任何特殊字符-尝试使用更简单的搜索替换解决方案。

你能发布一个小的工作示例来描述你的问题吗?@tsds你的示例对我很有用。我刚刚编译了你的代码并测试了我的任务目标-它对“;;”和“{”很有效值您是对的问题在我的java类中-我使用了String.replaceAll和replacement containing&symbol,感谢您确保我的ant任务代码的正确性
<target name="test_passing_params">
    <antcall target="test_echo">
        <param name="param1" value=";;;"/>
        <param name="param2" value="{"/>
    </antcall>
</target>
<target name="test_echo">
    <echo>param1: ${param1}</echo>
    <echo>param2: ${param2}</echo>
</target>