2016-10-12 11 views
-1

私はいくつかのプログラムを構築しています。 apache guacamole(VNCツール)はログインコンソールを作成します。 (これは、ファイルにログインするために調整することができますが、私はしません) 私のプログラムはログインコンソールを読み込み、どのユーザ(id)がアクセス(接続)されたか、または離脱されたかを判断します。Javaでコンソールストリングを読む

しかし、それは私に "19行目の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 
} 

}

答えて

2

対話型シェル内で呼び出されていない場合System.console()への呼び出しは、nullを返すことがあります。

IDEから実行している場合は、String phrase = System.console().readLine();となります。NullPointerExceptionとなります。

API hereおよびhereを参照してください。

+0

返信いただきありがとうございます。私はあなたに問題を解決することができます。 – HyunsooKim

+0

と私は十分に検索されて申し訳ありません。 – HyunsooKim

+0

@HyunsooKimようこそ。 – Mena