在Java应用程序中,我正在使用一些调用System.out.println().现在我想找到一种以编程方式删除这些东西的方法.
我找不到谷歌的任何解决方案,所以有任何提示吗?
很长一段时间以来,我一直在为我拉头发.我已经研究了如何在Java中清除控制台一小时.
我发现的只是通过打印一堆行或执行此操作来进行肮脏的黑客攻击
Runtime.getruntime.exec("cls/clear");
Run Code Online (Sandbox Code Playgroud)
但是,似乎没有什么对我有用.难道没有像C(clrscr();)那样在Java中清除控制台的方法.是不是有任何外部库可以实现这一目标.
如果有人在使用适当的功能,库等而不是肮脏的黑客攻击之前,请告诉我.
我搜索了很多,但没有找到有用的东西......有办法!所以,我需要的是一个清除Eclipse中控制台的代码(使其为空白).不,不打印50个空行,清除它!
我找到了这个:
Import import java.io.Console;
public void ClearConsole() {
Console console = System.console();
if (console == null)
System.out.println("Couldn't get Console object !");
console.clear();
}
Run Code Online (Sandbox Code Playgroud)
但它给了我一个错误:" 方法clear()未定义为类型控制台 "
我是Java的新手,我仍然试图掌握它,所以我很抱歉这是一个愚蠢的问题,但我想知道如何在与输入相同的行上打印输出.例如,我正在编写一个简单的游戏,用户试图猜测一个4位数字(就像Mastermind一样).我已经找到了所有的机制,但我很难在控制台上显示它.在一开始它可能看起来像:(a)
Turn Guess Bulls Cows
----------------------------
1
Run Code Online (Sandbox Code Playgroud)
然后,用户会输入他们的猜测:(b)
Turn Guess Bulls Cows
----------------------------
1 1234
Run Code Online (Sandbox Code Playgroud)
一旦用户点击进入,程序应该检查他们对秘密号码的猜测,并输出"公牛"的数量(他们猜测的数字与秘密号码完全匹配)和"奶牛"(他们猜测的数字是数字的一部分,但在错误的位置),然后开始一个新的行,再次等待用户输入.所以,如果秘密号码是4321 ......(c)
Turn Guess Bulls Cows
----------------------------
1 1234 0 4
2
Run Code Online (Sandbox Code Playgroud)
麻烦的是,我不能为我的生活弄清楚如何让输出显示在与输入相同的行上.这是我到目前为止的一个片段(因为完整的代码更加丑陋而被剥离):
number = "4321";
String guess;
int attempts = 1;
do
{
System.out.print(attempts + "\t\t");
guess = keyboard.next();
attempts++;
int bulls = checkBulls(guess, number);
int cows = checkCows(guess, number);
System.out.print("\t\t" + bulls + "\t\t" + cows + "\n");
}
while (!guess.equals(number));
Run Code Online (Sandbox Code Playgroud)
这让我(b),但是当我点击进入时,会发生这种情况:
Turn Guess Bulls Cows
----------------------------
1 1234 // so far so …Run Code Online (Sandbox Code Playgroud) 谁能告诉我是否可以清除 intellij-idea 中的控制台以及如何清除?
到目前为止,我已经尝试过:
System.out.print("\033[H\033[2J");
System.out.flush();
Run Code Online (Sandbox Code Playgroud)
和:
Runtime.getRuntime().exec("clear");
Run Code Online (Sandbox Code Playgroud)
但其中任何一个都有效。
我正在使用 Intellij-idea Ultimate 2017 2.4 和 Linux Mint。
我想在我的java应用程序中清除屏幕,在阅读了很多问题和谷歌搜索后,我找到了下面的代码
runtime.getruntime().exec("cls")
Run Code Online (Sandbox Code Playgroud)
要么
Runtime.getRuntime().exec("cmd /c cls");
Run Code Online (Sandbox Code Playgroud)
但上面的代码不会在Windows 7中的工作我知道了"CLS"的剧本是特定领域,没有人知道什么是我应该在Windows 7中使用这将是非常有帮助的文本,预先感谢您.
我有一个扩展 Thread 类的类。在它的 run 方法中有一个System.out.println声明。在执行此打印语句之前,我想清除控制台。我怎样才能做到这一点?
我试过
Runtime.getRuntime().exec("cls"); // and "clear" too
Run Code Online (Sandbox Code Playgroud)
和
System.out.flush();
Run Code Online (Sandbox Code Playgroud)
但都没有奏效。
对于使用webstart启动的应用程序,我在Java控制台上显示输出消息.而不是用户手动清除消息,有没有办法清除代码中的控制台消息?
这些消息以大约每秒1000的速度打印,并且似乎最终使用了太多的内存,我本可以停止打印到控制台,但要求是始终拥有它.
我创建了一个示例 Java 应用程序。我想清除窗口选项,即:
如果用户按 3 我需要以编程方式清除所有选项。就像是Console.clear?
有什么办法可以用 Java 做到这一点吗?
我正在制作一个游戏,每次转弯后都要清理屏幕以提高可读性.唯一的问题是我不能使用基于Windows命令提示符的"cls"命令,它不支持ANSI转义字符.我在下一页使用了Dyndrilliac的解决方案但导致了IOException:
用"cmd\C cls"替换"cls"只会打开一个新的命令提示符,清除它并关闭它而不访问当前控制台.如何使通过Windows命令提示符运行的Java程序访问命令提示符的参数并使用它们来清除其输出?
Rust 代码是
use std::process::Command;
fn main() {
if cfg!(target_os = "windows") {
Command::new("cls").spawn().expect("cls command failed to start");
} else {
println!("Not windows");
}
}
Run Code Online (Sandbox Code Playgroud)
错误是
PS C:\dev\Rust\testing> cargo run
Compiling testing v0.1.0 (C:\dev\Rust\testing)
Finished dev [unoptimized + debuginfo] target(s) in 0.95s
Running `target\debug\testing.exe`
thread 'main' panicked at 'cls command failed to start: Os { code: 2, kind: NotFound, message: "The system cannot find the file
specified." }', src\main.rs:5:37
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace
error: process …Run Code Online (Sandbox Code Playgroud) 我在问这篇文章:如何清除控制台:Java
接受的答案是在Java中清除控制台是:
Runtime.getRuntime().exec("cls");
Run Code Online (Sandbox Code Playgroud)
但是,海报提到这段代码将"依赖于系统".这张海报的含义是什么?
(我的代表不允许我对帖子发表评论).