应该可以使用以下命令在特定的工作目录下调用可执行文件: 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');
没用 谁能告诉我正确的做法。谢谢