红联Linux门户
Linux帮助

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

发布时间:2016-11-11 11:18:06来源:linux网站作者:小石头吼吼
在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) {
}
}
 
本文永久更新地址:http://www.linuxdiyf.com/linux/25920.html