java.io.IOException:运行exec()时出错.命令:[cd,sdcard/.yasmin]工作目录:null环境:null

lad*_*oid 7 android

我尝试在sdcard中访问我的文件夹并安装myapp.apk,我使用以下代码:

 Runtime.getRuntime().exec("cd sdcard/.yasmin");
 Runtime.getRuntime().exec("adb install tefli.apk");
Run Code Online (Sandbox Code Playgroud)

但不幸的是我有这个错误:

05-11 11:09:57.925: WARN/System.err(1399): java.io.IOException: 
Error running exec(). Commands: [cd, sdcard/.yasmin] Working Directory: null    Environment: null
Run Code Online (Sandbox Code Playgroud)

任何人请有个主意.提前致谢.

MBy*_*ByD 7

我不确定这会解决你的问题,但AFAIK,每次调用exec()都会创建一个新的shell.可能的解决方案是执行以下操作:

  1. 使用:获取exec()的进程Process p = Runtime.getRuntime().exec(...).
  2. 使用获取进程inputStream p.getInputStream();.
  3. 运行第二个命令.

另请注意,您尝试访问sdcard,就像在根文件夹和硬编码路径中一样,请考虑以下事项:

Process p = Runtime.getRuntime().exec("cd /sdcard/.yasmin");
Run Code Online (Sandbox Code Playgroud)

甚至更好:

Process p = Runtime.getRuntime().exec("cd " + Environment.getExternalStorageDirectory() + "/.yasmin");
Run Code Online (Sandbox Code Playgroud)

希望它会有所帮助!


小智 6

你应该使用Runtime.getRuntime().exec("sh -c cd /sdcard/.yasmin");