windows下的Java控制台错误

windows下的Java控制台错误,java,eclipse,console,Java,Eclipse,Console,下面的代码 System.out.println("Start"); String s = ""; //936 * 5 = 4680 characters for (int i = 0; i < 937; i++){ s += "1234 "; } System.out.println(s); System.out.println("End"); System.out.println(“开始”); 字符串s=“”; //936*5=4680个字符 对于(int i=0;i首选项-

下面的代码

System.out.println("Start");
String s = "";
//936 * 5 = 4680 characters
for (int i = 0; i < 937; i++){
    s += "1234 ";
}
System.out.println(s);
System.out.println("End");
System.out.println(“开始”);
字符串s=“”;
//936*5=4680个字符
对于(int i=0;i<937;i++){
s+=“1234”;
}
系统输出打印项次;
系统输出打印项次(“结束”);
在windows下的java控制台上,在“开始”和“结束”之间生成一条空行,但在运行MacOS或Linux时会按预期工作。当写入文件而不是使用sysout时,同样适用。我试过多台windows机器。不管我是通过eclipse还是通过cmd执行该方法

当您将“1234”更改为“1234”或“12g4”时,或者当运行次数大于/小于936时,它在所有操作系统中都能正常工作


有人能证实这一点吗/关于这个问题是否存在已知的bug?

我也可以在Windows 7下重现这一点。由于SWT中的操作系统,这似乎是一个限制,而且似乎已经存在了很长一段时间(2002年)。它被标记为WONTFIX。看见这是一个已知的bug

解决方法是转到工作区->首选项->运行/调试->控制台,并将固定宽度控制台设置为大约4000个字符。这将在4000个字符后换行,这是一种痛苦,但至少您将获得所有输出

我试过伽利略(3.5)、赫利俄斯(3.6)和靛蓝(3.7),它们都表现出这种行为,但奇怪的是,伽利略和赫利俄斯的极限是818(4090个字符),靛蓝是936(4680个字符)。4090让我想到了一个操作系统限制(下一个是4090+5+crlf,>4096),它与Eclipse/SWT中提出的bug相匹配。我无法解释为什么接受的字符数不同。我只能说这是操作系统中的东西

Eclipse中出现了许多重复的错误:


  • 一切似乎都是由于:

    在我的Windows XP机器上运行良好。还会有一些其他问题,它甚至在我的Windows XP上运行良好。您使用的是什么版本的JDK?我在JDK1.6.Yep上进行了测试。eclipse控制台中的问题。编译后的jar工作正常。