2013-01-21 140 views
2

我曾嘗試代碼:控制檯輸入錯誤顯示java.lang.NullPointerException

import java.io.Console; 
public class Default 
{ 
    public static void main(String args[]) throws IOException 
    { 
     Console console = System.console(); 
     String testing = console.readLine("Enter Name: "); 
     System.out.println("Entered Name: "+ testing); 
    } 
} 

進入異常與以下錯誤:
Source not found. NullPointerException

我使用Eclipse朱諾EE調試..!

和參考鏈接,上面寫的代碼是here

+0

在編譯時或運行時拋出錯誤嗎? – MTCoster

+0

@MatthewCoster,跑步時間! – Enthusiastic

+0

也許[這個](http://stackoverflow.com/questions/104254/java-io-console-support-in-eclipse-ide)問題會幫助那麼。 – MTCoster

回答

3

您是否正在從ide運行程序,如console.readLine返回null從IDE使用時。

For more details refer to this

如果您從命令行運行它,你不會得到這個錯誤。

3

System.console()返回空值,如果沒有控制檯。

您可以通過adding a layer of indirection to your code或通過在外部控制檯中運行代碼和attaching a remote debugger來完成此操作。

+1

正確 - 而且,從Eclipse內運行時,這是真實的:https:/ /bugs.eclipse.org/bugs/show_bug.cgi?id=122429 –

+0

我在netbeans中也是這樣,'System.console()'即使在這裏也返回null。爲什麼這樣? –

3

這是因爲,IDE沒有使用控制檯!

進入cmd.exe的

cd <bin path>按下回車鍵..

現在鍵入java <classname>命中進入

它的工作原理!

+0

嗯,你是對的。它從Windows控制檯工作。但問題在於,OP使用Eclipse IDE。而Eclipse IDE沒有'System.console()'。這是一個已知的bug: - https://bugs.eclipse.org/bugs/show_bug.cgi?id=122429 –

+0

@RohitJain,我說他的IDE沒有使用控制檯。但是你可以從命令提示符運行任何java編譯的代碼。這就是Java的美麗! –

相關問題