Java中的“System.in.read()”

Java中的“System.in.read()”,java,system.in,Java,System.in,我对这种方法有一个问题: public void runTransaction(){ //Some calculations... wait(); //Other calculations... } private static void wait(){ try { System.out.println("Press <enter> to continue"); System.in.read(); } cat

我对这种方法有一个问题:

public void runTransaction(){
   //Some calculations...
   wait();
   //Other calculations...
}

private static void wait(){
   try {
        System.out.println("Press <enter> to continue");
        System.in.read();
    } 
    catch (java.io.IOException ex) {
        System.out.println("Input error...");
    }
}
但按Enter键后程序不会继续。我正在使用Ubuntu 12.04


编辑:程序会打印消息“按继续”,但之后不会继续,它只是等待输入。

您的代码是否编译?wait方法在对象类上是公共的,因此不能将其重写为私有的。尝试使用不同的方法名,比如waitForInput。

这甚至不应该编译:

可以引发IOException,您需要处理该异常。编辑:看起来您已在代码段中修复了此问题

无法命名此方法wait,因为它隐藏了对象的名称


更正这些错误后,代码应按预期运行。

如果您将名称更改为“等待输入”,则只需确保在按enter键之前已单击控制台,以便它注册输入即可

这个方法在哪里调用?给我们多一点代码我编辑了我的帖子。methode runTransaction在主methode中被调用了几次。是的,代码会编译,消息会打印出来并等待输入。wait方法是静态的,因此不会超越Object.wait实例方法。@user3019653由于该方法被称为wait,所以代码段仍然不应该编译。它会编译,但是我把名字改成了wait_enter,但是得到了相同的名字result@user3019653这是什么Java版本?Java-version告诉我:Java版本1.6.027OpenJDK运行时环境IcedTea6 1.12.6 6b27-1.12.6-1ubuntu0.12.04.4 OpenJDK 64位服务器VM build 20.0-b12,混合模式最好将此作为评论而不是答案添加。由于我上周刚刚加入,请注意one rep point,我无法向其他人的帖子添加评论。