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("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 中的一个已知错误:bug description

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

关于java - 在 IntelliJ IDEA 和 Gradle 上调试时等待用户输入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27267508/

相关文章:

string - Gradle:如何过滤和搜索文本?

java - 如何在另一个Jar中多次调用具有另一个Jar中的参数的Java类

java - 异常和 SQLException 之间的区别

java - Spring Boot 找不到 IntelliJ

JavaFX 预加载器从未从 main 调用

intellij-idea - 错误:在根项目上找不到属性 'semanticVersion'

gradle - 如何在 Gradle 构建文件中正确排除 "junit-vintage-engine"?

android - 如何从我的 Android 库构建目标中排除 jar 文件

java - gui 中新线程的问题

java - 使用 Java_OPTS 启动 Java