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个回答

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

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

xdwyyan
小石头吼吼 那第一个该怎么写呢
4 年多之前 回复

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

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

xdwyyan
小石头吼吼 是啊,很容易出错
4 年多之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!