Gradle将不允许通过Windows命令提示符输入

时间:2016-06-12 02:46:49

标签: java windows batch-file gradle command-line

在安装了JDK的shell服务器上,以下程序允许用户通过读入下一个整数并显示正确的输出来输入:

package hello;
import java.util.Scanner;

public class HelloWorld {
  public static void main(String[] args) {
    Scanner in = new Scanner(System.in);
    int theNextInt = in.nextInt();
    System.out.println("Next integer is: " + theNextInt);
  }
}

但是,当我在Windows控制台上执行gradlew run时,会出现以下错误:

Exception in thread "main" java.util.NoSuchElementException
        at java.util.Scanner.throwFor(Scanner.java:862)
        at java.util.Scanner.next(Scanner.java:1485)
        at java.util.Scanner.nextInt(Scanner.java:2117)
        at java.util.Scanner.nextInt(Scanner.java:2076)
        at hello.HelloWorld.main(HelloWorld.java:12)
:run FAILED

当然,发生异常是因为Scanner不再读取任何元素。 那是因为Windows控制台不允许我输入。可以解决这个问题吗?

1 个答案:

答案 0 :(得分:1)

我明白了。事实证明,经过进一步的研究后,我遇到了this questionthis question提供相同的解决方案(有效):

build.gradle文件中包含以下内容:

run {

standardInput = System.in

}

因为根据the docs,对于JavaExec类型的任务,InputStream默认为空。