0
我在用下面的代碼的問題:Process.StandardInput.WriteLine不工作JAVA.EXE
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」
「java」看起來不像一個有效的文件名。不應該是「java.exe」或「javaw.exe」? –
Java是好的,就像打入cmd進入開始 - >運行而不是cmd.exe – james
並且「java」住在工作目錄中嗎?或者在其他一些?也許指定「java」應用程序的完整路徑。 –