我有以下的Java主类,我正在尝试使用IntelliJ IDEA中的Gradle插件编译和运行:
package com.mikidep.bookshop;
import java.io.IOException;
import java.util.Scanner;
public class Main {
public static void main(String[] args) throws IOException {
Scanner in = new Scanner(System.in);
System.out.print("Inserisci testo qui: ");
System.out.println(in.nextLine());
System.out.println("Yee!");
}
}
以下是我的 build.gradle 内容:
group 'com.mikidep.bookshop'
version '1.0-SNAPSHOT'
apply plugin: 'application'
mainClassName = "com.mikidep.bookshop.Main"
sourceCompatibility = 1.5
repositories {
mavenCentral()
}
dependencies {
testCompile group: 'junit', name: 'junit', version: '4.11'
}
run {
standardInput = System.in
}
现在,如果我在终端中运行
gradle run -q
,一切都按预期工作。但是,我想使用这个IDEA运行配置来进行测试运行:![IDEA Run configuration](https://istack.dev59.com/eBgiQ.webp)
in.nextLine()
会抛出以下异常:我也尝试了调试,并注意到Exception in thread "main" java.util.NoSuchElementException: No line found at java.util.Scanner.nextLine(Scanner.java:1585) at com.mikidep.bookshop.Main.main(Main.java:10)
System.in
中的所有字段似乎都被清零,就像整个流没有被初始化一样。有人知道发生了什么吗?编辑:我刚刚验证了这也影响构建脚本:我将这些行添加到运行任务中System.out.println("Wait...")
System.in.read()
System.out.println("Ok!")
但是Gradle会立刻打印出这两行,而不等待我的输入。