开发者社区> 问答> 正文

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")执行就可以,请问问题出在哪里了呢?

展开
收起
爵霸 2016-06-16 09:40:13 2511 0
2 条回答
写回答
取消 提交回答
  • 3年淘宝运营支撑系统研发,6年云数据库平台架构,RDS,NoSQL业务

    不建议使用JAVA 调用shell, 因为派发新进程会COPY 当前进程的内存(上下文),如果需要操作linux 主机,建议引入三方库来解决;

    2019-07-17 19:40:19
    赞同 展开评论 打赏
  • `
    String[] command = new String[] {"/bin/sh","-c","chmod 777 /data/misc/123.sh"};
    Runtime.getRuntime().exec(command);
    `
    这样试试 。。。。

    2019-07-17 19:40:19
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
Spring Cloud Alibaba - 重新定义 Java Cloud-Native 立即下载
The Reactive Cloud Native Arch 立即下载
JAVA开发手册1.5.0 立即下载