System.out.print()没有将任何输出发送到Eclipse控制台。为什么?

20

我有以下Java类:

public class Test {

    public static void main(String args[]) {

        for (int i = 0; i < 1448; i++) {
            System.out.print(i);
        }

    }
}

在 Eclipse IDE 中运行此代码时,我没有看到任何在 Eclipse 控制台中的输出。

如果我更改值 1448 为例如 1447 或更少,我就能在控制台中看到输出 (12345678...)

那么,也许 Eclipse IDE 在控制台中有字符串长度限制?

你对此有什么看法?


2
我可以确认这一点。适用于Java EE Indigo的Eclipse。对于1448或更高版本,没有输出,即似乎有空格,我可以用鼠标标记。但是使用System.out.println似乎可以正常工作。 - hage
我的Eclipse(Indigo Service Release 2 on OSX 10.7.4)中的输出很好,即使对于较大的值(10000)也是如此。 - Roger Lindsjö
2
https://bugs.eclipse.org/bugs/show_bug.cgi?id=87299 - Eng.Fouad
5个回答

26

在控制台中右键单击 -> 首选项... -> 选中 固定宽度控制台。现在您可以自动换行,所有内容都能正常显示。看起来Eclipse控制台在一行中显示的字符数量有限制。


1
确实,这起作用。Eng.Fouad在OP的评论中链接了相关的错误。 - tykel

10
根据此文,Eclipse确实限制其输出缓冲区的大小。

当然,您可以更改此行为:

转到Window > Preferences > Run/Debug > Console并取消选中限制控制台输出; 或者您可以提供1000到1000000个字符之间的任意数量。

编辑:但似乎无法解决您的问题。

难怪它以前总是对我有效。我取消了“限制控制台输出”选项。 - adarshr
这与行数有关,而不是输出宽度。 - Alex Stybaev

2
我在我的Eclipse Helio IDE中测试了你的代码。根据你所说,它适用于较小的数字。但是对于较大的数字,它实际上在控制台中打印,但输出没有显示出来。如果你尝试将其复制并粘贴到编码编辑器或像记事本这样的其他编辑器中,你就可以看到它。
如果你使用println(),它会显示输出。相反,你也可以使用print(i+ "\t")来查看输出。

8
你的口才很好! :) - adarshr

1

使用\t解决了我的问题。

示例:System.out.println("Result:\t" + data);


使用println和print有关系吗? - Sarah Phillips

0
如何将 System.out.println 输出到控制台: 右键单击您的 GlassFish(服务器选项卡),然后转到“查看日志文件”。

enter image description here

请确保控制台设置指向您的server.log文件: enter image description here

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接