この .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
私が理解している限り、これはシェル環境がないためです。
次に、必要なコマンドを .sh ファイルに書き込んでから、次のようにコマンドを実行しようとしました。
Runtime rt = Runtime.getRuntime();
Process proc = rt.exec("sh /runCmds/shTest.sh");
InputStream is = proc.getInputStream();
pwd、echo、およびほとんどのコマンドの問題を解決しました。
しかし後で、実行したコマンドの状態を保持したいことに気付きました。たとえば、ディレクトリ( cd data
)を変更してコマンドを実行したいmkdir Apoel
そして、ここで私は自分の問題に直面します。何をすべきか?
私は別のアイデアを思いつきました:
シェル スクリプト (.sh) を作成し、ユーザーがコマンドを実行するたびに、その中に新しいコマンドを追加します (そして、ホール スクリプト (.sh) を再度実行します)。しかし、私はそれを行うにはあまり良い方法ではないと思います!
簡単な方法はありますか?私のアプリケーションはターミナルを簡単に開くことができますか?
これはターミナル エミュレータ用に見つけたコードですが、複雑すぎます。