chromebook 上必须通过 crostini(debian 容器)安装 openjdk-17-jdk,而非手动或 arch;装后需确认 path 和 javac -version,vs code 需用 remote-containers 连接,且容器重启后服务需手动启动。

Chromebook 上不能直接装 JDK,必须通过 Linux 子系统(Crostini)运行,且默认 Debian 容器里 apt install openjdk-17-jdk 是最稳的路径 —— 别试 Arch 或手动解压 tar.gz,会卡在权限或 PATH 上。
为什么 Crostini 容器里 java -version 找不到命令
不是没装上,是装完没进 $PATH,或者装的是 JRE 而非 JDK。Crostini 默认容器用的是 Debian,openjdk-17-jdk 包才带 javac 和完整工具链;openjdk-17-jre 只有运行时。
- 先确认容器是否已启用:设置 → 高级 → 开发者工具 → Linux 已开启
- 进终端后执行
apt update && apt install openjdk-17-jdk,别跳过update - 装完立刻检查:
which java应该返回/usr/bin/java,否则手动加/usr/lib/jvm/java-17-openjdk-amd64/bin到~/.bashrc的PATH - 别用
sudo update-alternatives --config java,Crostini 里这命令常失效
javac 编译报错 “module not found” 或 “cannot find symbol”
不是代码问题,是默认用模块路径(--module-path)而非类路径(-cp)启动的 JDK 17 行为变化。Crostini 容器里没配 IDE,纯命令行开发时容易踩这个坑。
- 简单项目别碰
module-info.java,用传统-cp启动:javac -cp . Main.java && java -cp . Main - 如果用了
src/main/java/结构,别直接javac src/main/java/*.java—— 先mkdir -p out && javac -d out -cp out src/main/java/*.java -
java --version显示 17.0.x 没用,得看javac -version,两者可能不一致(容器里曾出现 apt 装了 jdk 但 shell 仍调用旧 jre)
VS Code 连不上 Crostini 的 Java 环境
VS Code for ChromeOS 默认连的是主机(Chrome OS),不是 Linux 容器。Java 扩展、Maven 插件、调试器全在错的环境里找 java。
立即学习“Java免费学习笔记(深入)”;
- 必须用 VS Code 的 Remote-Containers 扩展,点左下角绿色图标 → “Reopen in Container”
- 别在 Chrome OS 本地开文件夹,要进容器后用
code .启动编辑器 - 扩展要重装:Remote 容器里禁用所有本地扩展,再装一次
redhat.java和vscjava.vscode-maven - 如果调试时报 “Cannot connect to JVM”,检查
launch.json里java.home是否指向/usr/lib/jvm/java-17-openjdk-amd64,而不是空或默认路径
最麻烦的不是装 JDK,是每次重启 Chromebook 后 Crostini 容器自动休眠,java 进程断掉、端口释放、后台服务消失 —— 写脚本也没用,系统级限制。真要长期跑 Spring Boot,得接受“每次开码前先 systemctl --user start your-app”这个现实。










