Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/348.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 当不请求输入时,控制台中会显示键入的文本,如何停止此操作?_Java_Eclipse_Console - Fatal编程技术网

Java 当不请求输入时,控制台中会显示键入的文本,如何停止此操作?

Java 当不请求输入时,控制台中会显示键入的文本,如何停止此操作?,java,eclipse,console,Java,Eclipse,Console,我正试图在Eclipse中使用Java制作一个简单的基于文本的游戏,一切都很正常,直到它随机开始允许您在程序中的任何点输入,而不仅仅是在使用扫描仪请求输入时。我发现这真的很奇怪,并尽我所能去修复它,但没有任何效果,所以现在我回到了原点。当我运行我的程序时,我可以在控制台的任何地方键入,它实际上会出现,我不希望这种情况发生。这是我的前几行代码,这里显然没有扫描仪,所以我不明白可能是什么问题 这在我所有的项目中都会发生,我真的很想回到编码上来,让它工作起来 import java.util.Scan

我正试图在Eclipse中使用Java制作一个简单的基于文本的游戏,一切都很正常,直到它随机开始允许您在程序中的任何点输入,而不仅仅是在使用
扫描仪
请求输入时。我发现这真的很奇怪,并尽我所能去修复它,但没有任何效果,所以现在我回到了原点。当我运行我的程序时,我可以在控制台的任何地方键入,它实际上会出现,我不希望这种情况发生。这是我的前几行代码,这里显然没有扫描仪,所以我不明白可能是什么问题

这在我所有的项目中都会发生,我真的很想回到编码上来,让它工作起来

import java.util.Scanner;

public class Game {
public static void main(String[] args) throws InterruptedException { 

    String com = "Computer: ";

    System.out.print(com +"H");
        Thread.sleep(75);
    System.out.print("i");
        Thread.sleep(75);
    System.out.println(".");

    Thread.sleep(2000);

这是大多数控制台的正常行为;它不是来自Java或您的Java代码。当您在控制台中键入时,它会将您键入的字符回显给您

确实存在关闭回声的方法。将关闭它,直到您按Enter键。不幸的是,
Console
没有公开直接打开和关闭回声的功能,只是在请求输入行时

库可以使用
Terminal.echo()打开和关闭它:

这是否正确可能取决于程序的运行方式;我还没有在Eclipse上尝试过

当我试着这样做时,我在回音关闭时键入的内容在下次打开回音时出现。再一次,正常的控制台行为。如果你在控制台中输入,它总是在听你说话。如果你不想这样,我在它周围找到了一个黑客,它至少工作了一两次:

// Skip over anything that's been typed in already.
// Re-implementing skip() with read(), because skip() can throw an "Illegal seek"
// error that read() won't.
System.in.read(new byte[System.in.available()]);
terminal.echo(true);

这是大多数控制台的正常行为;它不是来自Java或您的Java代码。当您在控制台中键入时,它会将您键入的字符回显给您

确实存在关闭回声的方法。将关闭它,直到您按Enter键。不幸的是,
Console
没有公开直接打开和关闭回声的功能,只是在请求输入行时

库可以使用
Terminal.echo()打开和关闭它:

这是否正确可能取决于程序的运行方式;我还没有在Eclipse上尝试过

当我试着这样做时,我在回音关闭时键入的内容在下次打开回音时出现。再一次,正常的控制台行为。如果你在控制台中输入,它总是在听你说话。如果你不想这样,我在它周围找到了一个黑客,它至少工作了一两次:

// Skip over anything that's been typed in already.
// Re-implementing skip() with read(), because skip() can throw an "Illegal seek"
// error that read() won't.
System.in.read(new byte[System.in.available()]);
terminal.echo(true);

在此代码中,
scanner
在哪里使用?这是大多数控制台的正常行为;它不是来自Java或您的Java代码。当您在控制台中键入时,它会将您键入的字符回显给您,换句话说,您的Java代码没有做错任何事情。你不需要修复任何东西,即使你想修复,也没有任何东西可以修复。在这段代码中,
scanner
的使用在哪里?这是大多数控制台的正常行为;它不是来自Java或您的Java代码。当您在控制台中键入时,它会将您键入的字符回显给您,换句话说,您的Java代码没有做错任何事情。没有什么需要修复的,也没有任何可以修复的东西,即使你想修复。谢谢,我想它可能不会与Eclipse一起工作,但如果它是正常的控制台行为,那么它就不会再困扰我了。谢谢你的帮助!谢谢,我想它可能不适用于Eclipse,但如果它是正常的控制台行为,那么它就不会再困扰我了。谢谢你的帮助!