我有这个 .php 文件向我的 android 应用程序发送命令:
我尝试过使用:
Runtime.getRuntime().exec(commandLine);
BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(process.getInputStream()));
但是命令 echo、pwd 和其他一些命令不起作用。
我得到以下异常:
java.io.IOException: Error running exec(). Command: [pwd] Working Directory: null Environment: null
据我了解,这是因为没有任何 shell 环境。
然后我尝试在 .sh 文件中写入我想要的命令,然后以这种方式执行命令:
Runtime rt = Runtime.getRuntime();
Process proc = rt.exec("sh /runCmds/shTest.sh");
InputStream is = proc.getInputStream();
并通过 pwd、echo 和大多数命令解决了问题。
但后来我意识到我想保持我执行的命令的状态。例如我想改变目录(cd data
)并执行命令mkdir Apoel
这就是我面临问题的时候。该怎么办?
我想出了另一个主意:
制作一个 shell 脚本(.sh),每次用户想要执行命令时,都在其中添加新命令(并再次运行漏洞脚本(.sh))。但我认为这不是一个很好的方法!
有什么简单的方法吗?我的应用程序可以轻松打开终端吗?
这是我为终端仿真器找到的代码,但它太复杂了!