我有一个最简单的 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/