Code: Select all
import java.io.Console;
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
Console console = System.console();
System.out.print("User: ");
String user = sc.nextLine();
System.out.println("\r\n");
System.out.println("User entered was: " + user); //POINT 1
String password = new String(console.readPassword("Enter password: "));
System.out.println("\r\n");
System.out.println("Password entered: " + password); //POINT 2
}
}
Wenn ich das Programm ausführe, werde ich mit
[Benutzer:]< aufgefordert br />wie erwartet. Wenn ich jedoch die EINGABETASTE auf meiner Tastatur drücke, wird der Cursor an den Zeilenanfang gesetzt und geht NICHT zu „PUNKT 1“. Wenn ich erneut die Eingabetaste drücke, fahren wir mit „PUNKT 1“ fort und zeigen den Benutzer wie erwartet an.
Bei laufendem Programm sieht die Konsole so aus:
Code: Select all
[PS C:\..\Password] > java -cp "myBin" Main
User: foo|[ java -cp "myBin" Main
|[ java -cp "myBin" Main
User: foo
User entered was: foo
Enter password: |[ java -cp "myBin" Main
User: foo
User entered was: foo
Enter password:
Password entered: bar
[PS C:\..\Password] > |[