从Windows命令行读取用户输入仅从第二个字母打印-Java

从Windows命令行读取用户输入仅从第二个字母打印-Java,java,string,java.util.scanner,user-input,system.in,Java,String,Java.util.scanner,User Input,System.in,当我在Windows命令行中的行下运行时,它不带第一个字母。如果我输入22它只打印'2' private static String readInput() { try { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); input = br.readLine(); System.out.println("input "+input)

当我在Windows命令行中的行下运行时,它不带第一个字母。如果我输入
22
它只打印
'2'

private static String  readInput() {
    try {
         BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
         input = br.readLine();
         System.out.println("input "+input);

   } catch (Exception ioe) {
      System.out.println("Error trying to read your input!");
      ioe.printStackTrace();
   }
}       
试试这个

   while((input = br.readLine()) != null){
         System.out.println("input "+input);
    }
试试这个

private static String  readInput() {
try {
     DataInputStream in=new DataInputStream(System.in);
     input = in.readLine();
     System.out.println("input "+input);
     return input;
   } catch (Exception ioe) {
      System.out.println("Error trying to read your input!");
      ioe.printStackTrace();
   }
}     

好的,我发现了问题。它与scanner或BufferedReader无关。一切正常。
我的另一个后端线程正在读取
System.in.read()。这就是为什么我总是错过第一次输入。对不起,把你们都弄糊涂了

在eclipse中共享代码的其他部分这很好。但是在DOS中它不起作用你确定Eclipse版本和DOS版本是一样的吗?对不起我弄丢了它是什么?我构建jar文件并使用命令>java-jarmyprog.jar,然后它调用我的主类,该类尝试获取用户input@Homayoun这是密码。从main方法调用此方法以获取用户输入。程序不会继续。它会在一段时间内继续。例如:输入服务编号:1输入