java执行shell命令权限不够 | 您所在的位置:网站首页 › linux运行sh脚本命令权限不够 › java执行shell命令权限不够 |
在java程序中执行shell命令,改变文件的权限,可以在命令行中执行 chmod 777 /data/misc/123.sh" 来改变权限,但是在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) { } } 时间: 06-10 |
CopyRight 2018-2019 实验室设备网 版权所有 |