【问题标题】:how to write c# that control over external cmd如何编写控制外部cmd的c#
【发布时间】:2012-09-23 19:24:55
【问题描述】:

我需要一些建议。我几乎完成了我的程序,但停留在最后一步。 我正在尝试使用以下命令从 C# 运行 java 文件:

Process.start("java","file") //with file = file.class (已经编译好的java文件)

该进程将触发一个 cmd 并执行 java 文件 一切正常,但是 cmd 关闭太快,我的 java 文件是否要求输入都没有关系,最后,完成后,cmd 只是自动关闭。

由于 cmd 是外部应用程序,我无法在 C# 中控制它: 使用 Process.WaitForExit();但同样的效果,因为 cmd,正如我所说,是外部的

无论如何我可以使用 c# 暂停 cmd,或者以某种方式设置 cmd,使其不会关闭(仅一次,不是每次我想运行 lol)。我想看看输出

这必须在不对 java 进行任何修改的情况下完成,因为我将以相同的方式运行多个 java 文件。

【问题讨论】:

  • 你可以在一个命令中运行多个命令,例如java file ; pause 吗?
  • java文件应该是未知的,要么输入输出,要么不输出,可以是简单的helloworld,也可以是询问并打印你的年龄。但是java文件不应该被修改,换句话说我没有权限编辑它的内容。
  • 但是你可以运行多个命令吗,比如一个迷你脚本,即你的java程序和pause
  • 我可以做任何事情是 c#,但不是 java 文件。假设java文件将打印出hello world,就是这样。它确实打印了,但是然后 cmd 退出到快速,我看不到结果!
  • Matthew 帮我搞定它,tyvm 为您腾出时间!

标签: c# java cmd


【解决方案1】:

试试这个:

Process.Start("cmd", "/K java test.class");

/K 标志告诉cmd 运行提供的命令,但之后不要关闭窗口。

【讨论】:

  • 确实会弹出 cmd 并暂停直到我退出。但是我需要输入:java test 来运行我的java文件。因为我会运行很多 java 文件,有没有办法自动运行它?
  • fyi,我要运行的文件是.class文件,所以我不得不说Process.Start("java","javafile"),就像我们在cmd中手动运行一样。
  • 我已经编辑了我的答案以澄清我的意思。这对你有用吗?
  • 伙计,你真是个天才。就像我想要的一样。非常感谢。现在我如何将这篇文章标记为 [已解决],这是我第一次来 SO :)
  • 酷。很高兴它帮助了你:-)
猜你喜欢
  • 2011-08-20
  • 2011-06-12
  • 2018-12-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多