繁体   English   中英

Runtime.getRuntime()。exec()工作不正确

[英]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上下文启动一个新进程。 这意味着您正在将subusybox chroot /data/local/debpsla /bin/bashls作为并发和不相关的进程运行。

如果您希望一个人跟随另一个人,则必须在一个过程中完成所有这一切。 我怀疑编写您执行的脚本会更容易。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM