当前位置: 首页 > 面试题库 >

使用gradle run启动应用程序时,java.util.scanner引发NoSuchElementException

慎风畔
2023-03-14
问题内容

我创建了一个简单的java“
echo”应用程序,该应用程序接收用户的输入并将其显示给他们以演示该问题。我可以使用IntelliJ的内部“运行”命令运行该应用程序,并且在执行产生的已编译Java文件时也可以正常运行gradle build。但是,如果尝试使用执行应用程序,则会gradle run从扫描仪抛出NoSuchElementException异常。

我认为gradle或应用程序插件正在对系统IO做一些奇怪的事情。

应用

package org.gradle.example.simple;

import java.util.Scanner;

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

build.gradle

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 {
    mavenCentral()
}

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

任何想法如何使该应用程序使用gradle run


问题答案:

您必须将默认的stdin连接到gradle,并将其放入build.gradle中:

run{
    standardInput = System.in
}


 类似资料:
  • 问题内容: 我有一个Java应用程序。 该应用程序具有一个设置,该设置决定该应用程序是否在启动时启动。 目前,我可以通过在“启动项目”文件夹中放置/删除快捷方式来实现此目的。 但是,我想知道是否有更好的方法来处理此行为。 编辑 是的,它是Windows。抱歉,之前没有清除该内容。 该应用程序具有一个用户可以在其中触发动作的UI,并且该应用程序在运行时会定期在后台运行一些任务。 @Peter,如何在

  • 问题内容: 我已经看到许多应用程序将乐器类作为参数并在加载时作为参数,这些应用程序也将a 放到了命令行中。 Java文档说关闭了类验证。 但是,为什么有人要关闭验证,即使他们正在学习类呢? 问题答案: 我会说启动时间。加载类时,验证类是否正确需要花费一些时间。由于类可能以惰性方式加载(不是在应用程序启动时加载,而是在首次使用时加载),因此这可能会导致意外的和不希望的运行时延迟。 实际上,通常不需要

  • 我想对Spring数据使用ElasticSearch。我使用的是Spring 5、Spring Boot 2和ElasticSearch 7.4。Docker compose: 马文: 存储库: 配置: 和错误时启动应用程序: 引起:java.lang.NoSuchMEDError:org.springframework.http.HttpHeaders.(Lorg/springframe/uti

  • 我有一份Java申请。 应用程序有一个决定应用程序是否在启动时启动的设置。 目前,我通过在StartUp items文件夹中放置/删除快捷方式实现了这一点。 然而,我想知道是否有更好的方法来处理这种行为。 编辑 是的,是视窗。抱歉之前没有清除。 应用程序有一个UI,用户可以在其中触发操作,并且应用程序在运行时定期在后台运行一些任务。 @Peter,如何使用应用程序中的代码更改注册表?这种方法是否与

  • 以下是错误: 下面是我的pom.xml文件: 这是我的主课: