Java 在IntelliJ IDEA和Gradle上调试时等待用户输入

Java 在IntelliJ IDEA和Gradle上调试时等待用户输入,java,intellij-idea,gradle,Java,Intellij Idea,Gradle,我有一个最简单的Java应用程序,只要从命令行执行就可以工作。但是,如果我想通过IntelliJ IDEA 14 Ultimate对其进行调试,System.in.read()部分总是返回-1,而从不在其中键入任何内容: import java.io.IOException; public class Main { public static void main(String[] args) throws IOException { System.out.println

我有一个最简单的Java应用程序,只要从命令行执行就可以工作。但是,如果我想通过IntelliJ IDEA 14 Ultimate对其进行调试,
System.in.read()
部分总是返回
-1
,而从不在其中键入任何内容:

import java.io.IOException;

public class Main {
    public static void main(String[] args) throws IOException {
        System.out.println("This is a test... Hit [enter] to exit.");
        int cha = System.in.read();
        System.out.println("You hit [enter], exiting...");
    }
}
这是Windows 8.1的某种问题还是与IntelliJ IDEA有关

更新:我发现只有通过Gradle(gradlew run)启动应用程序时才会出现问题,因此这是一个Gradle问题。这是我的
build.gradle

apply plugin: 'java'
apply plugin: 'application'

sourceCompatibility = 1.7
targetCompatibility = 1.7
version = '1.0'
mainClassName = 'net.frakbot.ws.Main'

repositories {
    mavenCentral()
}

run {
    main = 'net.frakbot.ws.Main'
    standardInput = System.in
}

dependencies {
    testCompile group: 'junit', name: 'junit', version: '4.11'
}

使用IntelliJ IDEA 14 community edition在我的windows 7计算机上运行良好。

这是IntelliJ IDEA中的一个已知错误:


编辑:显然,正如评论中所指出的,自给出此答案以来,该问题已得到修复,修补后的Intellij将于2017年夏季发布。

不,我还没有与gradle进行过测试。我只是简单地执行了你提供的代码。结果发现问题出在Gradle“应用程序”插件上。你在使用Gradle deamon吗?在这种情况下,您无法从标准输入中读取数据。实际上,您可以从标准输入中读取数据(请参阅),并且实际上可以从终端运行
gradlew run
。它只是不在IntelliJ IDEA的集成调试/运行控制台中。好的,很高兴知道该错误已被修复:-)不,它还没有被修复:D我仍然想从IDEA开始调试Gradle。今天刚刚遇到这个。。。现在看来这已经是一个2年多前就知道的问题了。有没有办法知道是否真的会有任何进展?我想,除了监控bug状态并等待修复之外,没有其他办法。IntelliJ idea 2017.2已经解决了这个问题。EAP是可用的。