java執行linux命令


import java.io.*;
public class T{
        public static void main(String[] args) {

// String cmd1 = "sudo nmcli connection delete '"+args[0]+"'";
// String cmd2 = "sudo nmcli connection delete "+args[0]+"";


String[] cmd = {"sh","-c","sudo nmcli con delete '"+args[0]+"'"};
System.out.println(cmd);
              try {
                //      logger.info("啟用失敗或刪除wifi后刪除連接信息:"+cmd);
                          Process p =  Runtime.getRuntime().exec(cmd);
        BufferedReader br = new BufferedReader(new InputStreamReader(p.getInputStream()));
                    String line = null;
                 //   StringBuilder result = new StringBuilder();
                    while ((line = br.readLine()) != null) {
                        System.out.println(line);
                        }
                } catch (Exception e) {
                        e.printStackTrace();

                }
        }
}

 

問題

執行cmd1時,始終無法在linux服務器執行,但若執行cmd2時,就可以正常在linux服務器執行。若不加引號時,參數存在特殊字符時會存在問題,出現執行失敗或參數與原本傳入參數不同的問題。

暫時沒有發現更好的解決辦法,改為使用現有傳入數組的方式,執行命令。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM