2016-06-29 64 views
1

以下是使用掃描儀讀取用戶輸入的一段代碼。爲什麼在使用ant運行java時無法獲得用戶輸入?

Scanner inner = new Scanner(System.in); 
Logger logger = Logger.getLogger("Test"); 
logger.info("Before"); 
int a = inner.nextInt(); 
logger.info("After"); 
...... 

當我使用Ant運行Java任務和EXCUTE我的代碼(用「叉=真」),該方案獲得卡住打印後「之前」。我可以輸入任何內容,但「After」之後永遠不會打印。

但是,使用命令行渣華時:

java -cp build/BoxBugRunner.jar:lib/gridworld.jar com.perqin.boxbugrunner.BoxBugRunner 

的輸入被接受,一切工作正常。

看來,使用ant運行java程序時系統輸入無法訪問,那麼如何解決這個問題呢?

+0

爲什麼要在Ant構建中使用System.in? Ant構建通常是非交互式的。 –

+0

@JFMeier然而,我是一個螞蟻的新手......那麼在使用螞蟻時,我怎樣才能與我的程序交互(即輸入終端並獲得輸出)呢? – Perqin

+0

Ant通常用作構建工具,即構建您的jar,文檔等。您通常不會使用ant運行程序。爲什麼你想與一個由ant腳本調用的程序進行交互? –

回答

0

而不是使用System.in你應該的:

  • 之前和輸入之後分割程序的一部分。在構建腳本中執行第一部分,然後通過得到輸入,最後用輸入的參數執行第二部分。

  • 或者將您的程序寫爲Ant任務,該任務委託給Ant輸入任務以提示輸入。

相關問題