【问题标题】:Eclipse console doesn't show the whole outputEclipse 控制台不显示整个输出
【发布时间】:2012-02-16 14:18:03
【问题描述】:

在 Java 中,我尝试将字符串作为输出写入控制台。字符串的长度为 20166 个字符。将字符串打印到控制台后,仅显示字符串的后半部分。

整个字符串是一长行:

外观: 从一开始就有很多空格(应该是字母数字字符),然后是字符串的其余部分正确显示。

我尝试将控制台编码从默认更改为 UTF-16 和 UTF-8,但没有帮助。

我试图输出的字符串是从特定网页 (http://docs.jquery.com/Tutorials:Getting_Started_with_jQuery) 爬取的文本内容。如果我抓取不同的网页,则没有问题。

我如何处理字符串: 我使用网络服务从网页中获取文本内容。返回的字符串(文本内容)被正确打印(整体)。我需要处理这个字符串,所以我将所有字符更改为小写,并用单个空格替换所有多个空格。

textContent.toLowerCase().replaceAll("\\s+", " ");

将字符小写后,我仍然可以正确打印整个字符串,但是用一个替换多个空格后,字符串的开头不可见。

你知道问题是什么吗?

提前感谢您的帮助。

【问题讨论】:

  • 是否只发生在 Eclipse 中?我的意思是,您是否尝试过从控制台运行它并且结果符合预期?
  • 输出更长的、行分隔的 base64 字符串:通常,当一行以 '+' 开头时,由于某种原因,它会被省略;)

标签: java eclipse


【解决方案1】:

这不是错误。它是 Eclipse 包含的可更改设置之一,以使输出更具可读性。

可以通过转到Windows --> Preferences --> Run/Debug --> Console然后取消选中默认为ON的“限制控制台输出”来更改。

有关这些设置的更多信息和详细信息,请访问: http://help.eclipse.org/juno/index.jsp?topic=%2Forg.eclipse.jdt.doc.user%2Freference%2Fpreferences%2Frun-debug%2Fref-console.htm

这也适用于任何版本的 STS。这将有助于打印完整的控制台输出。

【讨论】:

  • 对于 Mac,它是 Eclipse > 首选项 > 运行/调试 > 控制台。是的,这应该是公认的答案。
【解决方案2】:

控制台的偏好是什么?特别是检查设置“固定宽度控制台”和“限制控制台输出”。也许您的控制台根本无法在一行中容纳那么多字符。

在 Eclipse 中,如果您转到首选项并在下拉菜单中,您可以看到 RUN/DEBUG 选项,如果您单击该 RUN/DEBUG 下拉菜单,您可以看到控制台按钮,在那里您可以调整“固定宽度控制台”加上“限制控制台输出”

[编辑] 现在 Eclipse 最终不得不在控制台中剪切数据,因为它没有无限量的内存。如果控制台仍然被切断,您可以使用这个技巧:打开“运行配置”对话框(在绿色“运行”按钮的下拉菜单中找到)。

“通用”选项卡底部的“标准输入和输出”组中有选项,可将所有输出的副本保存在文件中。然后,您可以使用您的操作系统工具检查此文件。

还要注意,很长的行会使 Eclipse 变慢(即它可能会挂起几秒钟)。这是由于bug in the regexp matching patterns for Exception stack traces。如果发生这种情况,请将行长限制为 1000 个字符或更少。

这尤其是 Spring 的一个问题,它有时会在消息中创建包含 50'000 个字符的异常。

如果您在使用 CDT 全局构建控制台时遇到类似问题,请参阅此处:Eclipse CDT Build Console output not displaying entire compiler output

【讨论】:

  • 设置“固定宽度控制台”后,我可以看到整个输出。感谢您解决问题。但是你知道原因吗?会不会是 Eclipse 错误?
  • 嗨,我正在使用 eclipse Kepler,我已经取消选中限制控制台输出长度的选项,但是当它变得太长时它仍然会切断日志的开头,这使得调试考虑到我找不到根本原因/非常/很难...我认为这一定是一个 Eclipse 错误,有解决方法吗?
  • @SebastianTroy:请提出一个新问题——其他人可能也有同样的问题。
  • @AaronDigulla:肯定会立即被标记为该问题的重复项?
  • 另外需要注意的是,控制台输出只在项目运行时写入文件,而不是在项目构建时...
【解决方案3】:

在 Preference 中检查控制台缓冲区大小是否足以满足您的情况。通常是 80000 个字符,以防万一被更改。

【讨论】:

  • 我通过取消选中“限制控制台输出”将缓冲区大小更改为无限制,我忘了在我的帖子中提及它。
【解决方案4】:

检查此错误:Long Lines not printed to console,它是 Bug 23406 的副本,于 2002 年开放,尚未修复!我刚刚在 Eclipse 2020-06 中发现了它,然后我还尝试了非常古老的 Ecipse Mars 并且它可以工作。他们说这个问题不仅会影响控制台,还会影响编辑器。一条评论说“这个错误对于 WONTFIX 来说有太多 dup”。

【讨论】:

    最近更新 更多