2016-10-12 2 views
-1

저는 프로그램을 만들고 있습니다. apache guacamole (VNC 도구)은 로그인 콘솔을 만듭니다. (파일을 만들 때 로그를 조정할 수는 있지만 그럴 수는 없습니다.) 그래서 내 프로그램은 로그인 콘솔을 읽고 어떤 사용자 (id)가 액세스했는지 (연결되었는지) 또는 떠나야하는지 (연결이 끊어 졌는지)를 결정합니다.자바에서 콘솔 문자열 읽기

하지만 "java lang nullpointer exception 19 행"을 제공합니다. 여기 내 코드가 있습니다. 대화 형 쉘 내에서 호출하지 않을 경우 System.console()

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 
} 

}

답변

2

호출이는 null 반환 할 수 있습니다.

IDE에서 실행하는 경우 String phrase = System.console().readLine();이고 NullPointerException이됩니다.

API herehere을 참조하십시오.

+0

답장을 보내 주셔서 감사 드리며 문제를 해결할 수 있습니다. – HyunsooKim

+0

및 충분하지 검색에 대한 미안 해요. – HyunsooKim

+0

@HyonsooKim 당신을 환영합니다. – Mena