Ответ 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"));
возможно без полного пути к myfile
Process process2=Runtime.getRuntime().exec("myfile",
null, new File("/data/data/my-package/files"));
Context#getFilesDir()
вместо hardcoding путь должен работать тоже и безопаснее/чище, чем указывать путь самостоятельно, так как не гарантируется, что /data/data/..
всегда правильный путь для всех устройств.
Process process2=Runtime.getRuntime().exec("myfile",
null, getFilesDir()));
Проблема с cd somewhere
заключается в том, что каталог изменяется для другого Процесса, поэтому второй вызов exec
в новом Процессе не видит изменения.