Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/jpa/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Can';我不能让Gradle使用System.in_Gradle_Inputstream_Blocking_System.in - Fatal编程技术网

Can';我不能让Gradle使用System.in

Can';我不能让Gradle使用System.in,gradle,inputstream,blocking,system.in,Gradle,Inputstream,Blocking,System.in,说明如何在运行任务时使用System.in在项目中运行特定类 但对我来说,它目前不起作用:尽管我在build.gradle中包含了应用程序插件和以下几行内容: mainClassName = "misc.StreamsExp" run{ standardInput = System.in } task stream( type: JavaExec, dependsOn: assemble ){ classpath sourceSets.main.runtimeClasspat

说明如何在运行任务时使用
System.in
在项目中运行特定类

但对我来说,它目前不起作用:尽管我在
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();
}
。。。取而代之的是,这东西永远旋转:

马铃薯
马铃薯
马铃薯

注意:我使用的是Windows10操作系统,Java 8.91。我试过Windows DOS控制台和Cygwin。

NB2当我在Eclipse(Gradle STS Eclipse插件)中运行这个
任务时,也会发生同样的事情。。。但是当我以-->Java应用程序的身份运行时就不会了:那么阻塞就会如预期的那样发生。

哈。。。其中一个你认为你将永远被难倒的地方,你在发布到SO后2分钟就找到了解决方案!我会把它留给其他人

答案是将行
standardInput=
放在您正在运行的任务中,如下所示:

task stream( type: JavaExec, dependsOn: assemble ){
    standardInput = System.in
    classpath sourceSets.main.runtimeClasspath
    main = "misc.StreamsExp"
}
奇怪的是,在Windows DOS终端中,提示“spuds”之后是

>建筑88%>:流

。。。这是我提到的问题中提到的一个已知的“bug”。在Cygwin中,此错误不会发生


警告:这适用于Windows DOS终端和Cygwin终端。。。在Eclipse中运行定制的
任务时,它不会解决问题

对。。。正如我所说,在我的例子中,它在EclipseIDE中不起作用。它似乎只在CLI终端中工作。