次のコードで問題が発生しています。
private void Form1_Load(object sender, EventArgs e)
{
cmdOutput = new StringBuilder("");
cmdProcess = new Process();
cmdProcess.StartInfo.WorkingDirectory = @"C:\android-sdk\tools";
cmdProcess.StartInfo.FileName = @"java";
cmdProcess.StartInfo.Arguments = @"-Xmx512m -Djava.ext.dirs=lib\;lib\x86_64 -Dcom.android.monkeyrunner.bindir=..\framework -jar lib\monkeyrunner.jar";
cmdProcess.StartInfo.UseShellExecute = false;
cmdProcess.StartInfo.CreateNoWindow = true;
cmdProcess.StartInfo.RedirectStandardOutput = true;
cmdProcess.OutputDataReceived += new DataReceivedEventHandler(SortOutputHandler);
cmdProcess.StartInfo.RedirectStandardInput = true;
cmdProcess.Start();
cmdStreamWriter = cmdProcess.StandardInput;
cmdProcess.BeginOutputReadLine();
// Even if i fire this later it doesn't work.
cmdStreamWriter.WriteLine(@"print 'Hello World'");
}
問題は次のとおりです。
cmdStreamWriter.WriteLine(@"print 'Hello World'");
何もしていません。Javaプロセスには何も書き込まれていません。
出力は正常に機能しているようです(スクリプトをmonkeyrunner.jarに直接ロードしてテストしました。しかし、何度も試しても入力が得られません。
プロセスを「cmd」に変更すると、これは正常に機能します