2011-08-04 16 views
6

は、私は、コマンドラインから実行した場合、私はC#のからこれを実行し、結果を取得しようとしています取得コンソール出力は

コンソールに出力trueまたはfalseを返す瓶を持っていますこの

Process p = new Process(); 
p.StartInfo = new ProcessStartInfo("java", @"-jar test.jar " + paramterForStringArgs[0]); 
p.StartInfo.RedirectStandardOutput = true; 
p.StartInfo.UseShellExecute = false; 
p.Start(); 
String s = p.StandardOutput.ReadToEnd(); 
p.WaitForExit(); 
Trace.WriteLine("data = " + s); 
return false; 

のように行われている私は常に空の文字列を取得するために、これはあるかもしれない理由、またはそれを行うためのより良い方法があった場合には思っていたように見えますか?

+1

"java.exe -version"コマンドを実行して、それが最初に機能するかどうか確認してください。 – djangofan

+4

また、RedirectStandardErrorを設定し、p.StandardError.ReadToEnd()を呼び出す必要があるかもしれません。 – jonathanpeppers

+1

stderrorストリームにリダイレクトすると、jarファイルにアクセスできないエラーが表示されました。私はコピーする出力ディレクトリをコピーするように設定するのを忘れました。申し訳ありませんが、それはうまくいきます: – James

答えて

5

設定RedirectStandardErrorを呼び出し、p.StandardError.ReadToEnd()を呼び出すと、プロセスからのエラー出力が読み込まれます。

関連する問題