Java Ant API Commandline.Argument类中setLine()和setValue()之间的差异?

Java Ant API Commandline.Argument类中setLine()和setValue()之间的差异?,java,command-line,ant,Java,Command Line,Ant,我不明白这些方法之间的区别 以下是JavaDoc所说的: setLine(String)=要拆分为多个命令行参数的行 setValue(String)=设置单个命令行参数 我的困惑是,我看到它们在我正在更新的代码中互换使用。例如: Commandline commandline; commandline = new Commandline(new File(jarUtilsDir,"signtool.exe").getAbsolutePath()); commandline.

我不明白这些方法之间的区别

以下是JavaDoc所说的:

setLine(String)=要拆分为多个命令行参数的行

setValue(String)=设置单个命令行参数

我的困惑是,我看到它们在我正在更新的代码中互换使用。例如:

Commandline commandline;
commandline = new Commandline(new File(jarUtilsDir,"signtool.exe").getAbsolutePath());
commandline.createArgument().setLine("--verbosity");
commandline.createArgument().setValue("-1");
commandline.createArgument().setLine("-o");
    

也许我只需要解释一下这些值应该如何使用。

如果您设置的是一个没有空格的值,那没关系。但是,假设您有:

commandline.createArgument().setLine("x y");
这相当于:

commandline.createArgument().setValue("x");
commandline.createArgument().setValue("y");
鉴于

commandline.createArgument().setValue("x y");
将进行适当的引用(我相信),以便被调用的程序将其视为单个命令行参数


测试这一点的简单方法是创建一个只打印其参数的应用程序,每行一个,然后尝试两种方法:)

谢谢。因此,似乎应该选择单个设置行,或多个设置值,并且我正在查看的代码不是最佳的。+1因为这是一个很好的答案,我真的想看看当达到100k时会发生什么。