我正試圖在Windows和Unix上自動執行一些命令行測試。我使用Java 1.6和Apache Commons CLI 1.1來執行此操作。我在Java代碼中做的是使用Apache Commons CLI的addArgument方法構建我想要運行的命令。我建,我要運行的命令行後,我想管的命令到一個文件的輸出,所以我說下面的命令Unix上的Java Apache Commons CLI; >正被視爲可執行文件的參數而不是重定向
cloudscan_cmdl.addArgument(">");
cloudscan_cmdl.addArgument(cloudscanOutputFilename);
凡cloudscanOutputFilename是包含字符串的結尾我想使用的文件名。這在Windows上工作正常,命令已建立,重定向的兩個參數被添加並且文件創建正常。但是,在Unix上,它將>和文件名字符串視爲可執行文件的附加參數,而不是重定向。
如何讓Unix讀取這個命令,就好像它是直接在命令行上鍵入一樣?我已經將該命令作爲字符串輸出,並將其複製並粘貼到Unix中,並且按預期工作,但是從Java程序運行時,重定向未被正確處理。
我試過使用方法的addArgument(字符串,布爾)版本作爲true和false,都沒有幫助。這真是讓我瘋狂。