【问题标题】:Programmatically show command prompt/terminal output以编程方式显示命令提示符/终端输出
【发布时间】:2012-04-18 18:55:39
【问题描述】:

我不知道如何搜索这个。我有一个摇摆应用程序。我想让用户在浏览应用程序时打开命令提示符并查看输出 (System.out.println("MY_OUTPUT");)。但是,在大多数情况下,这不是必需的,因此他们可以在启动应用程序后启用它。有没有办法做到这一点?基本上,我正在寻找某种方法来随时打开命令提示符或与我的程序关联的终端。感谢您的帮助。

注意1:这与接收用户的输入无关,只是输出给用户。

注意 2: 我意识到我可以(并且可能应该)在带有文本区域的单独摆动窗口中执行此操作,但我所拥有的所有内容都将转到 System.out.println();,并且我我想在未来的项目中使用同样的东西,所以我真的很希望能够使用命令提示符来做到这一点。此外,这首先是我的问题。谢谢:D

【问题讨论】:

标签: java terminal command-prompt


【解决方案1】:

说实话,我觉得在 GUI 环境中通过命令行而不是某些对话框(我的意思是您显示 GUI)接受用户输入很奇怪,但您可以只使用 Runtime 来执行命令提示符。看这里cmd using java

【讨论】:

  • 不,它不是用来接收输入的。它仅用于查看输出。查看更新的说明。
  • 您也可以通过另一个面板显示输出。为什么要显示命令行?从我的角度来看,甚至将输出打印到文件并通过消息框通知用户输出已完成似乎比显示命令行更自然。除非我错了,否则我只在安装向导中看到过这种方法,这是出于特定原因
  • 我可能最终会这样做。在命令提示符中显示它真的很容易,因为这就是 System.out.println(); 的去向,而不是将我的所有消息重新定向到面板或文件。
  • 你错了!你可以将System.out重定向到一个文件。 stackoverflow.com/questions/2851234/…
  • 哈哈,你说得对,我的评论有误导性。用户会更容易看到它的进展情况。这是我的程序的一种调试功能。这是否是一种更好的方法与这个问题无关。我的问题是关于如何打开命令提示符窗口并在运行后显示程序的输出。不过感谢您的提示!
【解决方案2】:

我想这个要求来自您在您的应用程序中使用简单的日志记录策略,只需使用System.println() 语句。您应该将System.println() 方法调用包装在某种记录器模式类中。您可以使用 Log 方法创建 Logger 接口。 ConsoleLogger impl 只会写入控制台,对您进行测试/调试很有用。

那么对于您的真实用户,您有几个选择。如果他们想查看您的应用程序的输出,您可以使用 FileLogger 并让他们读取日志文件。或者你可以制作某种 CustomTextWindowLogger 来记录到某个 GUI 窗口,或者仍然是一个 GUI 窗口可以显示数据的文件。

无论哪种方式,我从未见过应用程序将System.println() 语句重定向到图形组件,因为它只是将数据发送到标准输出流。按照这些思路,我想您也可以尝试将System.out 输出流更改为您的 GUI 窗口可以显示的不同流。这将更容易快速实施,但更难改变。使用 Logger 界面,您可以轻松改变对如何将输出提供给用户的想法。

【讨论】:

    【解决方案3】:

    为什么不直接弹出一个文本字段/区域(或 Swing 中的任何内容),然后在其中写入消息?

    【讨论】:

    • 嗯...有趣的想法。我可以这样做,但我更喜欢命令提示符/终端选项。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-10-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-04-16
    相关资源
    最近更新 更多