Hide input on command line

command-line, command-prompt, input, java, user-input

Solution

Try `java.io.Console.readPassword`.

   /**
    * Reads a password or passphrase from the console with echoing disabled
    *
    * @throws IOError
    *         If an I/O error occurs.
    *
    * @return  A character array containing the password or passphrase read
    *          from the console, not including any line-termination characters,
    *          or <tt>null</tt> if an end of stream has been reached.
    */
    public char[] readPassword() {
        return readPassword("");
    }

Beware though, this doesn't work with the Eclipse console. You'll have to run the program from a true console/shell/terminal/prompt to be able to test it.

Problem

I know that command line interfaces like Git and others are able to hide input from a user (useful for passwords). Is there a way to programmtically do this in Java? I'm taking password input from a user and I would like their input to be "hidden" on that particular line (but not on all of them). Here's my code for it (though I doubt it would be helpful...) ``` try (Scanner input = new Scanner(System.in)) { //I'm guessing it'd probably be some property you set on the scanner or System.in right here... System.out.print("Please input the password for " + name + ": "); password = input.nextLine(); } ```

Original source

Related problems