1. 程式人生 > >Runtime.getRuntime().exec(cmd,envp,dir)執行命令cmd中目錄含連續空格執行出錯

Runtime.getRuntime().exec(cmd,envp,dir)執行命令cmd中目錄含連續空格執行出錯

.get 導致 strong 問題 多少 cmd 缺失 就會 成了

場景:因cmd中含有jre路徑,而jre路徑因測試創建的目錄中含(haha)- -(haha) ,其中含有兩個空格,導致後續底層在截取,重組命令後缺失了一個空格,目錄中(haha)- -(haha)變成了(haha)- -(haha),找不到路徑而命令執行失敗

處理:因為對於exec(cmd,envp,dir)方法,將cmd中帶點參數用""(雙引號)引起來是可以處理含單空格的,但是對於雙空格就會出問題,若envp,dir為空,

   可調整為使用exec(String[])方法,將命令和參數都放入數組中,可以忽略掉參數含有多少個空格

Runtime.getRuntime().exec(cmd,envp,dir)執行命令cmd中目錄含連續空格執行出錯