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

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

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

process2.waitFor();

process2=Runtime.getRuntime().exec("./myfile");

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

回答:

应该可以使用以下命令在特定的工作目录下调用可执行文件: 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"));

也许没有完整的途径 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在新流程中的第二次调用看不到更改。

以上是 使用Runtime.getRuntime()。exec从定义的目录中执行文件 的全部内容, 来源链接: utcz.com/qa/435126.html

回到顶部