0

cmd.exeが呼び出された後、プログラムが出力を次のように表示するという問題があります

実行:成功 Microsoft Windows [バージョン 6.1.7600] Copyright (c) 2009 Microsoft Corporation. 全著作権所有。

C:\Users\prodesign\Documents\NetBeansProjects\Procs>

>これがハングした後、OutputStreamWriterによって「exit\n」文字列を送信しようとしましたが、うまくいきませんでしたJavaのコードは次のとおりです

public static void main(String[] args) {

Scanner scan = new Scanner(System.in);     

    try
{
  int exitVal;
  char c;
  String ch="exit\n";
 Process process = Runtime.getRuntime().exec("cmd.exe");
  //"cmd /c C:/hello.exe",}
 OutputStream stdin = process.getOutputStream ();
 InputStream stderr = process.getErrorStream ();
 InputStream stdout = process.getInputStream ();

 BufferedReader reader = new BufferedReader (new InputStreamReader(stdout));
 BufferedWriter writer = new BufferedWriter(new OutputStreamWriter(stdin));
 System.out.println("sucesss");
 do{ c=(char)reader.read();
 System.out.print(c);

 }while(c!='>');

writer.write(ch);

exitVal=process.waitFor();
System.out.println("Exited with error code "+exitVal);

 }catch (Exception e)
 {
 e.printStackTrace();
 }
}
}

ありがとう

4

1 に答える 1

0

これを試して:

 writer.write("exit");
 writer.newLine();

「\n」は機能しないと思います。ストリームをフラッシュするか、newLine(); を送信するまで、コマンドは送信されません。指図。

于 2013-05-25T09:04:09.717 に答える