2012-06-09 29 views
3

我知道這是一個noobish錯誤,但我不知道如何解決它。system.console NullPointerException

public static void main (String args[]){ 
Console kitty = System.console(); 
String username = kitty.readLine("Username: "); 
} 

字符串username = kitty.readLine( 「用戶名:」);

產生錯誤。有人可以告訴我我做錯了什麼,謝謝。

回答

2

如果你想閱讀從標準輸入的用戶名,你可以使用此代碼:

try { 
    System.out.print("Username: "); 
    InputStreamReader streamReader = new InputStreamReader(System.in); 
    BufferedReader bufferedReader = new BufferedReader(streamReader); 
    String username = bufferedReader.readLine(); 
} catch (IOException e) { 
    e.printStackTrace(); 
} 

控制檯返回由System.console()不一定存在,這就是爲什麼你一個NullPointerException。

4

根據JavaDoc:

返回與當前的Java 虛擬機相關聯,獨特的控制檯對象,如果任何

如果沒有與javadoc關聯的控制檯,則指向的線是空對象上方法的調用,因此是例外。

你如何啓動你的應用程序?

無論是虛擬機具有控制檯取決於 底層平臺,也取決於在其中虛擬機 被調用的方式。如果虛擬機從 交互式命令行啓動而不重定向標準輸入和 輸出流,則其控制檯將存在,並且通常將連接到啓動虛擬機 的鍵盤和顯示器的 。如果虛擬機自動啓動,對於後臺作業調度程序的示例 ,則它通常不具有控制檯 。

相關問題