2013-02-17 30 views
6

如何清除使用Java在命令行中打印的文本?我想在打印後清除Text1並用Text2覆蓋。我搜索並找到這個代碼,但它不起作用。使用Java在命令行上打印的清晰文本

public class className { 

    public static void main(String[] args) throws IOException { 
     System.out.println("Text1"); 
     Runtime.getRuntime().exec("cls"); 
     System.out.println("Text2"); 
    } 
} 
+2

你應該閱讀這個http://www.javaworld.com/jw-12-2000/jw-1229-traps.html和這個http://alvinalexander.com/java/java-exec-processbuilder- process-1 – duffymo 2013-02-17 17:57:14

+2

這是不可能的。 System.out是***不是終端,它只是一個輸出流。 – 2013-02-17 17:57:28

+1

[鏈接](http://sourceforge.net/projects/javacurses/) – 2013-02-17 17:59:00

回答

8

您可以打印\b做到這一點:

System.out.print("Text1"); 
System.out.print("\b\b\b\b\b"); 
System.out.print("  "); 

注意這不會Eclipse Console工作。

+0

我在netbeans中測試它並且不工作我嘗試在cmd中測試 – Ehsan 2013-02-17 18:26:11

+0

它在windows cmd中也不起作用 – Ehsan 2013-02-17 18:32:12

+2

對不起,忘了一件事。 '\ b'只是將光標返回到某個位置,所以您只需要在其中打印空格。我在Windows cmd中測試了它,它工作。注意我使用'print'而不是'println'! – partlov 2013-02-17 18:40:01

0

您可以簡單地使用'\ r'(回車)轉義序列。

System.out.print("Text1"); 
System.out.print("\rText2"); 

那隻打印 '文本2'

0

嘗試這種解決方案:

new ProcessBuilder("cmd", "/c", "cls").inheritIO().start().waitFor(); 

我使用的是Windows 8和該解決方案爲我工作。希望它對你也是。 :)