[英]Runtime.getRuntime().exec() work incorrect
我尝试在我的应用程序中的Android上运行python应用程序。
此脚本在Better Terminal Emulator Pro中可以正常工作
su
busybox chroot /data/local/debian /bin/bash
/usr/bin/python /usr/src/script.py
然后我输入值
>>value1
result
但是,如果我在我的应用程序中尝试过:
String line;
Runtime.getRuntime().exec("su");
Runtime.getRuntime().exec("busybox chroot /data/local/debpsla /bin/bash");
Process proc = Runtime.getRuntime().exec("ls");
OutputStreamWriter osw = new OutputStreamWriter(proc.getOutputStream());
proc.waitFor();
BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(proc.getInputStream()));
while ((line = bufferedReader.readLine()) != null){
publishProgress(line);
}
命令ls返回的文件列表不正确。 这意味着根目录没有更改。
我做错了什么?
谢谢!
您正在分别运行每个命令,因为它们每个都使用JVM上下文启动一个新进程。 这意味着您正在将su
和busybox chroot /data/local/debpsla /bin/bash
和ls
作为并发和不相关的进程运行。
如果您希望一个人跟随另一个人,则必须在一个过程中完成所有这一切。 我怀疑编写您执行的脚本会更容易。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.