使用Runtime.getRuntime()。exec从定义的目录中执行文件

【字号: 日期:2024-02-28浏览:19作者:雯心
如何解决使用Runtime.getRuntime()。exec从定义的目录中执行文件?

应该可以使用以下命令在特定的工作目录下调用可执行文件: Runtime.exec(String command, String[] envp, Filedir)

如下:

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

也许没有完整的途径 myfile

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

Context#getFilesDir()而不是硬编码,该路径也应该起作用,并且比您自己指定路径更安全/更干净,因为不能保证该/data/data/..路径始终是所有设备的正确路径。

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

问题cd somewhere在于目录已针对其他流程更改,因此exec在新流程中的第二次调用看不到更改。

解决方法

我只想从特定文件夹执行文件。就我而言/ data / data / my-package / files /。所以我试着:

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

没用 谁能告诉我正确的做法。谢谢

相关文章: