下面是一段使用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程序时似乎无法访问System input,如何解决这个问题?
不使用System。在中:
-
将程序拆分为输入前后的部分。在构建脚本中执行第一部分,然后通过Ant输入任务获取输入,最后使用输入的参数执行第二部分。
-
或者将您的程序编写为Ant任务,委托给Ant输入任务以提示输入。