我不了解这些方法之间的区别。

这是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");


会做适当的引用(我相信),以便被调用的程序将其视为单个命令行参数。

测试此问题的简单方法是创建一个仅输出其参数(每行一个)的应用程序,然后尝试两种方式:)

09-28 06:27