unixコマンドを入力し、そのunixコマンドの出力を出力するためにこの関数を作成しました。しかし、私は使用しているunixコマンドに問題があります。 "ls"はファイルのリストを出力しますが、 "ls -lart"を実行するとnullを出力します。デバッグに問題があるか、なぜこれが機能しないのか。以下のコード。バッファ付きリーダー実行時execコマンドの出力
コンソールと対話するとき、あなたはコンソール自体をexecし、その後、コマンドを送信するプロセスの入力ストリームを使用する必要がありますprivate String[] unixCommand (String command, Boolean boolOutput) throws IOException, InterruptedException{
Process run;
int i = 0;
String output = "";
String[] finalOutput = new String[1000];
sendToProcessView("Unix Command: " + command);
run = Runtime.getRuntime().exec(command);
run.waitFor();
sendToProcessView("In Unix Command");
if (boolOutput == true){
sendToProcessView("In Output Mode of Unix Command");
BufferedReader stdInput = new BufferedReader(new InputStreamReader(run.getInputStream()));
sendToProcessView("Passed Buffer Reader");
while ((output = stdInput.readLine()) != null) {
sendToProcessView("Output: " + output);
finalOutput[i] = output;
i++;
}
}
return finalOutput;
}
コール 'run.waitFor()'あなたの後のように、「終了」を送信し、結果を読んで、あなたがた道を、またはねじ切りリスナーを使用してプロセスをシャットダウンすることができますコマンドの出力を消費しています。 – VGR
"ls"コマンドを受け付けるが、 "ls Main *"コマンドはワイルドカードで受け取らないことがわかった。 – Devilishdil24
見つかった – Devilishdil24