Kotlin Gradle项目使用readln执行报错,伴Java路径提示问题
问题解决步骤
1. 修正JAVA_HOME配置
你的JAVA_HOME设置错误,它必须指向JDK的根目录,而非具体的java可执行文件路径。当前你设置的usr/lib/jvm/java-11-openjdk-amd64/bin/java是错误路径,正确路径应为/usr/lib/jvm/java-11-openjdk-amd64(注意开头的斜杠)。
- 临时生效(当前终端会话):
export JAVA_HOME=/usr/lib/jvm/java-11-openjdk-amd64 - 永久生效(根据shell类型修改配置文件):
- Bash:编辑
~/.bashrc,添加上述export命令,执行source ~/.bashrc生效 - Zsh:编辑
~/.zshrc,添加后执行source ~/.zshrc生效
- Bash:编辑
另外/usr/lib/jvm/openjdk-11仅包含src.zip,说明这不是完整JDK,修正JAVA_HOME后Gradle就能定位到正确的JDK路径,解决“无Java可执行文件”的提示。
2. 让Gradle run任务支持交互输入
kotlin.io.ReadAfterEOFException是因为Gradle的run任务默认不会将终端标准输入传递给应用程序,导致readln()无法读取输入,直接触发EOF异常。
修改项目根目录下的build.gradle.kts文件,在application块中添加standardInput = System.in:
plugins { kotlin("jvm") version "1.9.20" // 保持你项目的Kotlin版本 application } application { mainClass.set("your.package.name.MainKt") // 保留原主类配置 standardInput = System.in // 添加此行开启输入传递 }
修改后执行./gradlew run,就能正常读取用户输入,运行你的交互循环逻辑。
内容的提问来源于stack exchange,提问作者8SIXSector
相关产品推荐
相关产品推荐

