我正在尝试在 Windows 和 Unix 上自动化一些命令行测试。我正在使用 Java 1.6 和 Apache Commons CLI 1.1 来执行此操作。我在 Java 代码中所做的是构建我想要使用 Apache Commons CLI addArgument 方法运行的命令。在构建要运行的命令行后,我想将命令的输出通过管道传输到文件中,因此我将以下内容添加到命令的末尾
cloudscan_cmdl.addArgument(">");
cloudscan_cmdl.addArgument(cloudscanOutputFilename);
cloudscanOutputFilename 是包含我要使用的文件名的字符串。这在 Windows 上运行良好,命令被构建,被重定向的两个参数被添加并且文件被很好地创建。但是,在 Unix 上,它将 > 和文件名字符串视为可执行文件的附加参数,而不是重定向。
我该怎么做才能让 Unix 读取这个命令,就好像它是在命令行上直接输入的一样?我已将命令作为字符串输出并在 Unix 中复制并粘贴它,它按预期工作,但是当从 Java 程序运行时,重定向没有得到正确处理。
我尝试使用该方法的 addArgument(string, boolean) 版本作为 true 和 false ,但都没有帮助。这真的让我发疯了。