java执行shell命令,chmod 777 xxx,改变权限无效的解决办法。

来源:互联网 发布:网络维护工程师工资 编辑:程序博客网 时间:2024/06/08 19:43

在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) {}}





1 0
原创粉丝点击