【问题标题】:Getting console output from jar in c#从 C# 中的 jar 获取控制台输出
【发布时间】: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


【解决方案1】:

设置RedirectStandardError 并调用p.StandardError.ReadToEnd() 会读取进程的任何错误输出。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-08-24
    • 2016-06-05
    • 1970-01-01
    • 1970-01-01
    • 2016-01-10
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多