【问题标题】:Why there is no output is eclipse console为什么没有输出是eclipse控制台
【发布时间】:2014-05-02 04:12:43
【问题描述】:

我不知道为什么 eclipse 在运行这个程序时没有在控制台上打印任何东西。

public class StringOptimization {

    public StringOptimization() {

    }

    public static void main(final String[] args) {
        final StringOptimization optimization = new StringOptimization();
        final String sampleArray[] = new String[60000];
        for (int i = 0; i <= 50000; i++) {
            sampleArray[i] = "i";
        }
        final String finalString = optimization.addStringItems(sampleArray,
                true);
        System.out.println(finalString);
    }

    public String addStringItems(final String[] items,
            final boolean forceUpperCase) {
        final StringBuilder returnValue = new StringBuilder();
        for (final String item : items) {
            returnValue.append(item);
        }
        return forceUpperCase ? returnValue.toString().toUpperCase()
                : returnValue.toString();
    }
}

【问题讨论】:

  • 您是否尝试过使用调试器逐步执行此操作,或者至少添加更多打印语句来确定程序的执行与您的预期不同的地方?
  • 看起来是 eclipse 或 sysout 的限制,因为如果我将其更改为 500 可以打印值
  • 也许你应该再等一会儿,你有没有尝试在你的循环中放置跟踪(println)?
  • 如果我将数组更改为超过大小 [4680],似乎会停止打印
  • 你在命令行上运行过程序吗?或者每 1000 次左右就打印一次?

标签: java eclipse


【解决方案1】:

控制台中保留的字符数有一个可配置的限制,通常约为 80000 个字符。这意味着您的行被打印并立即再次丢弃。

在首选项中增加此设置。

【讨论】:

  • 在哪里可以找到它:Window &gt; Preferences 然后Run/Debug &gt; Console &gt; Console buffer size
  • 我的可配置限制设置为 100000 个字符
  • 然后检查定宽控制台。
  • 以固定宽度为我工作,看起来 eclipse 无法处理太长的行
【解决方案2】:

感谢 Thorbjorn 的提示,设置缓冲区限制对我不起作用,所以我开始在首选项页面上使用其他选项,当我检查 Fixed width console 时。 eclipse 开始正确显示输出。但是我仍然会接受您的回答,因为您为我指明了正确的方向。

【讨论】:

  • 无论如何,您都应该为后代接受您的答案,因为这才是真正有效的方法。显然,你仍然应该支持他的回答;)
  • 我会在 2 天后接受我的回答,所以现在不会让我这样做
【解决方案3】:

增加控制台缓冲区大小是可以的。但是,如果控制台缓冲区的最大限制(等于 1000000)也被用尽,那么将再次发生覆盖。

其他解决方案是将控制台输出重定向到外部文件。此文件没有大小限制。对于更长的构建(如 Maven 构建等),我使用此方法。

参考这些链接

How can we redirect a Java program console output to multiple files?

redirecting to console

How to redirect

请注意,同时您可以将输出重定向到控制台和外部文件。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-09-01
    • 1970-01-01
    • 2016-01-11
    • 1970-01-01
    • 2020-05-16
    • 2015-08-31
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多