Gradle任务不接受Java用户输入
我使用springboot创建了一个gradle项目Gradle任务不接受Java用户输入,java,gradle,Java,Gradle,我使用springboot创建了一个gradle项目MortgageCalculator。使用/gradlew build构建项目后,我有以下目录树: 。 ├── 建筑 │ ├── 班级 │ │ └── JAVA │ │ ├── 主要的 │ │ │ └── 通用域名格式 │ │ │ └── 田 │ │ │ └── 抵押计算器 │ │ │ ├─
MortgageCalculator
。使用/gradlew build
构建项目后,我有以下目录树:
。
├── 建筑
│ ├── 班级
│ │ └── JAVA
│ │ ├── 主要的
│ │ │ └── 通用域名格式
│ │ │ └── 田
│ │ │ └── 抵押计算器
│ │ │ ├── DemoApplication.class
│ │ │ └── 主类
│ │ └── 测验
│ │ └── 通用域名格式
│ │ └── 田
│ │ └── 抵押计算器
│ │ └── DemoApplicationTests.class
| ...
|
├── 格雷德尔先生
|
|
...
|
└── src
├── 主要的
│ ├── JAVA
│ │ └── 通用域名格式
│ │ └── 田
│ │ └── 抵押计算器
│ │ ├── DemoApplication.java
│ │ └── 主类
│ └── 资源
│ └── 应用程序属性
...
Main.java
的源代码是
package com.tian.MortgageCalculator;
导入java.util.Scanner;
公共班机{
公共静态void main(字符串[]args){
//初始化工具
扫描仪=新的扫描仪(System.in);
字节a=scanner.nextByte();
}
}
然后我在
build.gradle
task Main(type: JavaExec) {
main = 'com.tian.MortgageCalculator.Main'
classpath = sourceSets.main.runtimeClasspath
}
但是当我运行
/gradlew Main
时。我得到以下例外
线程“main”java.util.NoSuchElementException中的异常
位于java.base/java.util.Scanner.throwFor(Scanner.java:937)
位于java.base/java.util.Scanner.next(Scanner.java:1594)
位于java.base/java.util.Scanner.nextByte(Scanner.java:2002)
位于java.base/java.util.Scanner.nextByte(Scanner.java:1956)
位于com.tian.MortgageCalculator.Main.Main(Main.java:14)
我认为问题在于,以这种方式运行任务不允许用户在中输入系统,但我应该如何定义我的任务以允许它呢?您可能正在寻找
JavaExec
任务类型。使用以下任务定义,设置对我有效(使用Gradle 6.8.2测试):
您可能正在寻找
JavaExec
任务类型的类型。使用以下任务定义,设置对我有效(使用Gradle 6.8.2测试):
task Main(type: JavaExec) {
main = 'com.tian.MortgageCalculator.Main'
classpath = sourceSets.main.runtimeClasspath
standardInput = System.in
}