2 xdwyyan xdwyyan 于 2015.06.10 17:04 提问

Java执行shell命令问题

我在java代码中执行shell命令改变Android目录下的文件123.sh的权限,
使用Runtime.getRuntime().exec("chmod 777 /data/misc/123.sh")这个命令无效,

但是,我将chmod 777 /data/misc/123.sh这个命令写到脚本chmod.sh里,在PC机上改变chmod.sh的权限后使用adb push将其放到android目录/data/misc/下,

再使用Runtime.getRuntime().exec("su -c ./data/misc/chmod.sh")执行就可以,请问问题出在哪里了呢?

4个回答

wang04171
wang04171   2015.06.10 17:37
已采纳

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

xdwyyan
xdwyyan 这样写在Android上不行,http://blog.csdn.net/su1216/article/details/7928724
2 年多之前 回复
Tiger_Zhao
Tiger_Zhao   Rxr 2015.06.10 17:13

权限不一样,第二个 exec 用到 su 了啊!

xdwyyan
xdwyyan 那第一个该怎么写呢
2 年多之前 回复
wang04171
wang04171   2015.06.10 17:38

不过我这个是在MAC OS X 下的写法 不确定能不能在你ANDROID下用

fcxxxer
fcxxxer   2015.06.10 20:38

在Android下Runtime.getRuntime().exec(command);参数问题很复杂的。

xdwyyan
xdwyyan 是啊,很容易出错
2 年多之前 回复
Csdn user default icon
上传中...
上传图片
插入图片