Make the console wait for a user input to close

后端 未结 8 947
遥遥无期
遥遥无期 2020-11-30 01:49

I have a console application that after performing its tasks, must give feedback to the user, such as \"operation completed\" or \"operation failed\" and the detailed error.

相关标签:
8条回答
  • 2020-11-30 01:56

    I used simple hack, asking windows to use cmd commands , and send it to null.

    // Class for Different hacks for better CMD Display
    import java.io.IOException;
    public class CMDWindowEffets
    {
        public static void getch() throws IOException, InterruptedException
        {
            new ProcessBuilder("cmd", "/c", "pause > null").inheritIO().start().waitFor();
        }    
    }
    
    0 讨论(0)
  • 2020-11-30 01:59

    You can just use nextLine(); as pause

    import java.util.Scanner
    //
    //
    Scanner scan = new Scanner(System.in);
    
    void Read()
    {
         System.out.print("Press any key to continue . . . ");
         scan.nextLine();
    }
    

    However any button you press except Enter means you will have to press Enter after that but I found it better than scan.next();

    0 讨论(0)
  • 2020-11-30 02:05

    I've put in what x4u said. Eclipse wanted a try catch block around it so I let it generate it for me.

    try {
            System.in.read();
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
    

    It can probably have all sorts of bells and whistles on it but I think for beginners that want a command line window not quitting this should be fine.

    Also I don't know how common this is (this is my first time making jar files), but it wouldn't run by itself, only via a bat file.

    java.exe -jar mylibrary.jar
    

    The above is what the bat file had in the same folder. Seems to be an install issue.

    Eclipse tutorial came from: http://eclipsetutorial.sourceforge.net/index.html

    Some of the answer also came from: Oracle Thread

    0 讨论(0)
  • 2020-11-30 02:10
    public static void main(String args[])
    {
        Scanner s = new Scanner(System.in);
    
        System.out.println("Press enter to continue.....");
    
        s.nextLine();   
    }
    

    This nextline is a pretty good option as it will help us run next line whenever the enter key is pressed.

    0 讨论(0)
  • 2020-11-30 02:14

    In Java this would be System.in.read()

    0 讨论(0)
  • 2020-11-30 02:14

    The problem with Java console input is that it's buffered input, and requires an enter key to continue.

    There are these two discussions: Detecting and acting on keyboard direction keys in Java and Java keyboard input parsing in a console app

    The latter of which used JLine to get his problem solved.

    I personally haven't used it.

    0 讨论(0)
提交回复
热议问题