Я пытаюсь автоматизировать некоторые тесты командной строки в Windows и Unix. Для этого я использую Java 1.6 и Apache Commons CLI 1.1. Что я делаю в коде Java, так это создаю команду, которую я хочу запустить, используя метод addArgument Apache Commons CLI. После создания командной строки, которую я хочу запустить, я хотел передать вывод команды в файл, поэтому я добавил следующее в конец команды.
cloudscan_cmdl.addArgument(">");
cloudscan_cmdl.addArgument(cloudscanOutputFilename);
Где cloudcanOutputFilename — это строка, содержащая имя файла, которое я хочу использовать. Это отлично работает в Windows, команда создается, добавляются два перенаправленных аргумента, и файл создается нормально. Однако в Unix он обрабатывает > и строку имени файла как дополнительные аргументы для исполняемого файла, а не как перенаправление.
Что я могу сделать, чтобы Unix читал эту команду, как если бы она была набрана прямо в командной строке? Я вывел команду в виде строки, скопировал и вставил ее в Unix, и она работает, как и ожидалось, но при запуске из программы Java перенаправление обрабатывается неправильно.
Я пробовал использовать версию метода addArgument(string, boolean) как истинную, так и ложную, и ни одна из них не помогает. Это серьезно сводит меня с ума.