java runtime getRuntime exec linux中執行命令 權限不夠 加上

    今天在linux中部署java項目,有一個需要備份達夢數據庫的功能,備份達夢數據庫使用了 達夢數據庫中安裝路徑bin文件夾下的 dexp 工具,進行邏輯備份。

    遇到問題:同過java的 Runtime.getRuntime().exec(),執行linux命令 失敗 

    String command = " eacho a ";

    String[] command = {"/bin/sh", "-c", command};

    Process process = Runtime.getRuntime().exec(command);

   執行成功

需要將 linux命令和 "/bin/sh"  "-c"  組成以上數據形式執行,

“/bin/sh” :  使用/bin/sh來解釋執行

/bin/sh -c的必要性

解釋這句話的鏈接地址:https://blog.csdn.net/qq_34562093/article/details/89948303

利用 "sh -c" 命令,它可以讓 bash 將一個字串作爲完整的命令來執行,這樣就可以將 sudo 的影響範圍擴展到整條命令。具體用法如下:
$ sudo /bin/sh -c 'echo "hahah" >> test.asc'

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章