nickbdyer nickbdyer - 2 years ago 195
Java Question

java.util.scanner throws NoSuchElementException when application is started with gradle run

I have a created a simple java "echo" application that takes a user's input and shows it back to them to demonstrate the issue. I can run this application without trouble using IntelliJ's internal "run" command, and also when executing the compiled java file produced by

gradle build
. However, if I try to execute the application using
gradle run
, I get a NoSuchElementException thrown from the scanner.

I think gradle or the application plugin specifically is doing something strange with the system IO.


package org.gradle.example.simple;

import java.util.Scanner;

public class HelloWorld {
public static void main(String args[]) {
Scanner input = new Scanner(;
String response = input.nextLine();


apply plugin: 'java'
version '1.0-SNAPSHOT'

apply plugin: 'java'

jar {
manifest {
attributes 'Main-Class': 'org.gradle.example.simple.HelloWorld'

apply plugin: 'application'

mainClassName = "org.gradle.example.simple.HelloWorld"

sourceCompatibility = 1.5

repositories {

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

Any ideas how to make this application work using
gradle run

Answer Source

You must wire up default stdin to gradle, put this in build.gradle:

    standardInput =
Recommended from our users: Dynamic Network Monitoring from WhatsUp Gold from IPSwitch. Free Download