使用ant运行java时为什么不能获得用户输入?

时间:2016-06-29 14:59:50

标签: java ant java.util.scanner

以下是使用Scanner读取用户输入的一段代码。

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

当我使用ant运行java任务并执行我的代码(使用“fork = true”)时,程序在打印“Before”后卡住了。我可以输入任何内容,但“After”永远不会被打印出来。

但是,使用命令行java时:

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

输入被接受,一切正常。

使用ant运行java程序时似乎无法访问系统输入,那么如何解决这个问题呢?

1 个答案:

答案 0 :(得分:0)

您应该:

而不是使用 System.in
  • 在输入前后的部分中拆分程序。在构建脚本中执行第一部分,然后通过Ant input task 获取输入,最后使用输入的参数执行第二部分。

  • 或者将您的程序编写为Ant任务,委派给Ant输入任务以提示输入。