[android]从定义的目录与 Runtime.getRuntime ().exec 执行文件

标签: shell Android
发布时间: 2014/9/20 7:26:45
注意事项: 本文中文内容可能为机器翻译,如要查看英文原文请点击上面连接.

我只是想要从特定的文件夹中执行我的文件。在我的案例/数据/数据/我-包/文件 /。所以我试着:

 Process process2=Runtime.getRuntime().exec("cd /data/data/my-package/files/");
 process2.waitFor();
 process2=Runtime.getRuntime().exec("./myfile");

它不起作用。任何人都请能告诉我正确的方式做到这一点。谢谢你

解决方法 1:

它应该是可以调用的可执行文件使用特定的工作目录Runtime.exec(String command, String[] envp, File dir)

如下:

Process process2=Runtime.getRuntime().exec("/data/data/my-package/files/myfile",
        null, new File("/data/data/my-package/files"));

也许没有充分 pathmyfile

Process process2=Runtime.getRuntime().exec("myfile",
        null, new File("/data/data/my-package/files"));

Context#getFilesDir()而非硬编码 path 也应该工作和安全 / 清洁比指定 path 自己因为它不是保证 /data/data/.. 是永远正确的 path 的所有设备。

Process process2=Runtime.getRuntime().exec("myfile",
        null, getFilesDir()));

问题 cd somewhere 是目录已更改为另一种 Process 所以第二个调用到 exec 在新的 Process 不会变化。

官方微信
官方QQ群
31647020