You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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生效

另外/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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.11 20:46:00