This question은 프로젝트에서 특정 클래스를 실행하는 작업을 실행할 때 System.in
을 사용하는 방법을 설명합니다.System.in을 사용하기 위해 Gradle을 가져올 수 없습니다.
그러나 내가 현재이 작동하지 않습니다에 대한 : 나는 application
플러그인을 포함하고 있지만 다음과 같은 라인 build.gradle
에서 :
mainClassName = "misc.StreamsExp"
run{
standardInput = System.in
}
task stream(type: JavaExec, dependsOn: assemble){
classpath sourceSets.main.runtimeClasspath
main = "misc.StreamsExp"
}
아래의 응용 프로그램 코드에서 readLine
으로 라인이 차단되어야하지만 그렇지 않다 :
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
String enteredLine = "";
while(enteredLine == null || ! enteredLine.equals("q")){
System.out.println("spuds");
enteredLine = br.readLine();
}
... 대신 것은 단지 영원히 회전 :
욕구가 마구
욕구가 마구
욕구가 마구
...
NB 내가 자바 8.91로, 윈도우 10 OS에서입니다. Windows DOS 콘솔과 Cygwin을 모두 시도했습니다.
NB2이 stream
작업을 Eclipse (Gradle STS Eclipse 플러그인) 내에서 실행하면 동일한 문제가 발생하지만 일 때 : 차단이 예상대로 발생합니다.
IntelliJ IDEA에서이 기능이 작동하지 않습니다. –
맞아 ... 내 말처럼, Eclipse IDE에서는 작동하지 않는다. 그것은 CLI 터미널에서 작동하는 것 같습니다. –