【发布时间】:2011-10-20 07:36:24
【问题描述】:
我有一个 jar,如果我从命令行运行它会返回一个 true 或 false 打印到控制台
我正在尝试从 c# 运行它并获得结果 - 这样做是这样的
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;
我似乎总是得到一个空字符串,想知道为什么会这样,或者是否有更好的方法?
【问题讨论】:
-
尝试使用命令“java.exe -version”,先看看是否有效。
-
您可能还需要设置 RedirectStandardError 并调用 p.StandardError.ReadToEnd()。
-
重定向到 stderror 流让我看到了无法访问 jar 的错误。如果更新,我忘记将副本设置为输出目录以进行复制 - 我每次都浪费了。抱歉 - 但它有效 - 耶 :)
-
@Jonathan.Peppers,您可能想创建一个答案以便他接受。
标签: c# java command-line jar