java - Gradle 运行任务在尝试使用 System.in 时抛出 java.util.NoSuchElementException
问题描述
我整晚都在用头撞墙。所以我有一个 build.gradle.kts:
plugins {
// Apply the java plugin to add support for Java
java
// Apply the application plugin to add support for building a CLI application.
application
}
repositories {
// Use jcenter for resolving dependencies.
// You can declare any Maven/Ivy/file repository here.
jcenter()
}
dependencies {
// This dependency is used by the application.
implementation("com.google.guava:guava:28.2-jre")
// Use JUnit test framework
testImplementation("junit:junit:4.12")
// Use Google Protocol Buffers
implementation("com.google.protobuf:protobuf-java:3.11.0")
}
application {
// Define the main class for the application.
mainClassName = "carnival.EntryPoint"
}
当我尝试从终端获取用户输入时new Scanner(System.in)
,我得到了这个:
> Task :run FAILED
Exception in thread "main" java.util.NoSuchElementException
at java.base/java.util.Scanner.throwFor(Scanner.java:937)
at java.base/java.util.Scanner.next(Scanner.java:1478)
at carnival.App.run(App.java:56)
at carnival.EntryPoint.main(EntryPoint.java:9)
FAILURE: Build failed with an exception.
所以我尝试制作自己的运行任务:
/// ...
// removed application plugin
sourceSets {
main {
java.srcDir("src/main/java")
}
}
tasks.register<JavaExec>("run") {
main = "carnival.EntryPoint"
standardInput = System.`in`
}
但显然我没有正确设置源目录,因为我得到以下信息:
Error: Could not find or load main class carnival.EntryPoint
Caused by: java.lang.ClassNotFoundException: carnival.EntryPoint
任何帮助将不胜感激。
解决方案
推荐阅读
- css - 如何缩小 bootstrap 4 表
- python - 如何在使用 selenium 无限滚动的网页中多次滚动
- html - CSS覆盖在页面主体上
- c++ - QRegularExpression 和使用反斜杠的规则
- php - php session_set_cookie_params() 在移动 chrome 浏览器中不起作用
- python - 是否可以在一个循环中迭代图像,使其自动将图像放入 tkinter python 的每个按钮中?
- android - 在活动之外封装一个启动活动的方法
- bash - 为什么运行 docker 容器时不执行 `~/.bashrc`?
- java - 在 centos 上安装 java 的替代方案
- spring-boot - 交换文件(最多 GB)