运行exec()时出错。命令:工作目录:null环境:null - 如何在非root设备上正确执行Android中的二进制文件?

时间:2015-02-21 13:56:26

标签: java android binary shellexecute

我想在非root用户设备上运行可执行文件。

在java中使用以下命令

Runtime.getRuntime().exec("/bin/chmod 744 /data/data/com.example.myapp/myBin");
Runtime.getRuntime().exec("/data/data/com.example.myapp/myBin");

结果

Error running exec(). Command: [/data/data/com.example.myapp/myBin] 
    Working Directory: null Environment: null

我发现了很多关于这方面的问题但没有答案在我的案例中有效。如何正确执行二进制文件?

2 个答案:

答案 0 :(得分:3)

如果您是从服务(而非应用活动)运行此功能,则必须将权限设置为777.

答案 1 :(得分:1)

Runtime.getRuntime().exec("/bin/chmod 744 /data/data/com.example.myapp/myBin");

虽然这可能不是您唯一的问题,但大多数Android chmod版本都存在于/system/bin且没有/bin目录,因此您的失败可能实际上是在尝试在获取自定义二进制文件之前,执行一个不存在的工具。