在java中读取控制台字符串

时间:2016-10-12 08:53:30

标签: java console

我正在建立一些计划。 apache guacamole(VNC工具)登录控制台。 (它可以调整为make登录文件,但我赢了#) 所以,我的程序读取登录控制台并确定访问(连接)或离开(断开连接)的用户(id)。

但它在第19行和第34行给了我" java lang nullpointer异常。 所以这是我的代码。

import java.util.*;
import java.lang.*;
import java.io.*;

class id
{
    public static void main (String[] args) throws java.lang.Exception
    {
    String connect    = "connect";
    String disconnect = "disconnect";
    String id;
    int strindex, endindex; //mark start, end index

    while(true){

        String phrase = System.console().readLine();
        if(phrase.equals(""))
            continue;

        if(phrase.contains(disconnect)){
            if( (strindex=phrase.indexOf("- User ")) > -1 )
            strindex = strindex + 8;        
        endindex = phrase.indexOf('"', strindex);
        id = phrase.substring(strindex, endindex);

        System.out.println(id);
        System.out.println("disco\n");
        //dockerfile_logout+pause;
        }//islogout

        else if(phrase.contains(connect)){
            if( (strindex=phrase.indexOf("- User ")) > -1 )
            strindex = strindex + 8;        
        endindex = phrase.indexOf('"', strindex);
        id = phrase.substring(strindex, endindex);

        System.out.println(id);
        System.out.println("connected\n");
        //dockerfile_login+start!   
    }//islogin

    }//while
}

}

1 个答案:

答案 0 :(得分:2)

如果未在交互式shell中调用,System.console()的调用可能会返回null

如果您从IDE运行此操作,String phrase = System.console().readLine(); 抛出NullPointerException

请参阅API herehere