Windows子系统Ubuntu运行Kotlinc 1.8.0遇Java命令未找到问题求助
问题分析
你是在WSL(Windows子系统 for Linux)环境下执行的Kotlinc脚本(错误路径里的/mnt/c是WSL挂载Windows磁盘的标识)。尽管Windows系统里配置了Java的PATH,但WSL是独立的Linux环境,它的环境变量与Windows不共享,因此脚本找不到WSL环境内的Java。
解决步骤
1. 检查WSL是否已安装Java
打开WSL终端,执行:
java -version
如果提示command not found,说明WSL内未安装Java,需在WSL中安装与Windows版本兼容的JDK(建议和你Windows里的16.0.2版本一致,或兼容Kotlin 1.8.0的版本)。
以Ubuntu WSL为例安装OpenJDK 16:
# 更新软件源 sudo apt update # 安装OpenJDK 16 sudo apt install openjdk-16-jdk # 验证安装结果 java -version javac -version
2. 配置WSL的JAVA_HOME环境变量
若WSL已安装Java但仍报错,说明Kotlinc脚本无法通过环境变量定位Java,需手动配置JAVA_HOME:
- 查找JDK安装路径:
readlink -f /usr/bin/java | sed "s:/bin/java::"
输出路径即为JDK根目录,例如/usr/lib/jvm/java-16-openjdk-amd64。
- 将
JAVA_HOME添加到WSL的环境变量:
编辑~/.bashrc文件:
nano ~/.bashrc
在文件末尾添加:
export JAVA_HOME=/usr/lib/jvm/java-16-openjdk-amd64 export PATH=$JAVA_HOME/bin:$PATH
保存退出后,执行以下命令使配置生效:
source ~/.bashrc
3. 验证修复效果
重新执行Kotlinc命令测试:
kotlinc main.kt -include-runtime -d main.jar
或执行kotlinc help确认是否仍报错。
额外提醒:你当前显示的Kotlinc版本是1.5.21,但安装的是1.8.0,可能是WSL内存在旧版本或环境变量优先指向了旧版本。可执行which kotlinc查看当前使用的Kotlinc路径,确保指向你安装的1.8.0版本脚本。
内容的提问来源于stack exchange,提问作者benji
相关产品推荐
相关产品推荐

