我在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")执行就可以,请问问题出在哪里了呢?
不建议使用JAVA 调用shell, 因为派发新进程会COPY 当前进程的内存(上下文),如果需要操作linux 主机,建议引入三方库来解决;
`
String[] command = new String[] {"/bin/sh","-c","chmod 777 /data/misc/123.sh"};
Runtime.getRuntime().exec(command);
`
这样试试 。。。。
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。