java運行shell命令,chmod 777 xxx,改變許可權無效的解決的方法。

來源:互聯網
上載者:User

標籤:stream   final   flush   comm   puts   des   shell   .sh   plain   

在java程式中運行shell命令,改變檔案的許可權。能夠在命令列中運行
chmod 777 <span style="font-family: Arial, Helvetica, sans-serif;">/data/misc/123.sh"</span>

來改變許可權,可是在java代碼中運行這個命令時使用

Runtime.getRuntime().exec("chmod 777 /data/misc/123.sh");
無效,使用

String[] command = new String[] {"/system/bin/sh","-c","chmod 777 /data/misc/123.sh"};Runtime.getRuntime().exec(command);

相同無效

最後通過執行個體化一個dataoutputstream對象,在這個對象的寫位元組方法裡寫命令才實現,代碼例如以下:

String[] commands = new String[] { "/system/bin/sh", "-c","chmod -R 777 /data/misc/123.sh" };Process process = null;DataOutputStream dataOutputStream = null;try {process = Runtime.getRuntime().exec("su");dataOutputStream = new DataOutputStream(process.getOutputStream());int length = commands.length;for (int i = 0; i < length; i++) {dataOutputStream.writeBytes(commands[i] + "\n");}dataOutputStream.writeBytes("exit\n");dataOutputStream.flush();process.waitFor();} catch (Exception e) {} finally {try {if (dataOutputStream != null) {dataOutputStream.close();}process.destroy();} catch (Exception e) {}}





java運行shell命令,chmod 777 xxx,改變許可權無效的解決的方法。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.