在Windows上在Java控制台中打印回车

12
在我的OS X电脑上,以下代码可以给我提供一种简单易用的方式来追踪循环的状态:

On my OS X machine, the following line gives me a nice and easy way to track the state of my loops:


for (int index = 0; index < 100; index++)
    for (int subIndex = index; subIndex < 100; subIndex++)
        System.out.print("\r" + index + "/" + subIndex + "       ");

但是当我在Windows上尝试运行相同的代码时,它会输出换行符而不是回车符。我该如何在Windows上实现与此类似的简单进程跟踪方法呢?

3个回答

7

我有这个语句并且在命令提示符中可以运行。

System.out.println("This is Java"+'\r'+"That");

并且为我提供输出结果
That is Java

这意味着它完美地工作。

注意:我在Windows 7上用JDK 7和简单的记事本运行它。

这是Eclipse的问题,它会将 \r 视为换行符并打印。

This is Java
That

作为输出

我目前正在使用Windows XP操作系统 - 也许这会有所影响? - F.P
通过Eclipse...在OS X上,我使用IntelliJ,它可以正常工作。现在我会在命令提示符上尝试一下。 - F.P
正如我之前提到的那样,问题在于Eclipse而不是Java。如果不使用像Intellij这样的额外工具,在Eclipse中它是无法工作的。 - Chandra Sekhar

1
如果您正在使用Eclipse,您需要在控制台窗口上启用控制字符选项。
要启用它,请打开Eclipse首选项,选择Run/Debug > Console。然后选择“解释ASCII控制字符”和“将回车符(\r)解释为控制字符”。

0

你说的"Windows"是指cmd.exe吗?你想要覆盖之前输出的那一行,对吗?不幸的是,我认为你需要以某种方式调用这个Win32 API才能实现它。

也许其他Java高手可以提供更好的答案...


我正在Windows机器上的eclipse中运行程序。还没有在CMD上尝试过。 - F.P

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