Sublime 一键编译运行 Java 本质是调用系统 javac 和 java 命令,须先确保终端中 javac -version 和 java -version 均正常输出;再手动创建 JavaC.sublime-build,配置 shell_cmd 含 -encoding UTF-8 和 -d . 参数,并设 working_dir 为 "$file_path",最后彻底重启 Sublime 加载环境变量。

Sublime 本身不带 Java 运行环境,所谓“一键编译运行”,只是调用你系统里已装好的 javac 和 java 命令。如果终端里 javac -version 或 java -version 报错,Sublime 就不可能跑起来——别急着写配置,先让命令行能用。
为什么按 Ctrl+B 后显示 “'javac' is not recognized”
这不是 Sublime 的 bug,是它根本没找到 javac 可执行文件。Sublime 启动时继承的是系统默认环境变量,不是你终端里改过的那个。
- Windows:打开命令提示符,运行
where javac;没输出就说明%JAVA_HOME%\bin没进系统Path(只设JAVA_HOME不够) - macOS/Linux:在终端运行
which javac;若为空,检查$PATH是否含$JAVA_HOME/bin,并确认~/.zshrc或~/.bash_profile已被正确加载 - 改完环境变量后,必须彻底退出 Sublime(任务管理器杀进程 / Activity Monitor 强制退出),再重开——否则它不会读新
PATH - 验证 Sublime 是否看见
javac:按Ctrl+`打开控制台,输入import os; print(os.environ.get('PATH')),搜java或jdk路径
怎么写一个真正能跑通的 JavaC.sublime-build
别用 Sublime 自带的 Java 构建系统,它不处理中文、不支持 package、也不自动运行。必须手动创建 Packages/User/JavaC.sublime-build,内容如下:
分析 Java Spring Boot 后端 Controller 代码,自动生成 Markdown 格式的接口文档。当用户说“生成 Java 接口文档”、“生成 API 文档”、“从 Spring 代码生成文档”时触发。
{
"shell_cmd": "cd '$file_path' && javac -encoding UTF-8 -d . '$file' && java '$file_base_name'",
"selector": "source.java",
"working_dir": "$file_path"
}
-
-encoding UTF-8必须加,否则含中文字符串或注释时javac直接报“非法字符”(Windows 默认用 GBK 读文件) -
-d .是关键:让javac按package com.example;自动建./com/example/目录,否则java找不到类 -
working_dir设为$file_path,不是固定路径,否则import其他类或读取同目录资源会失败 - Mac/Linux 用单引号包裹
$file防空格路径出错;Windows 若报错,可改用"cmd /c cd /d \"$file_path\" && javac ..."
运行时报 “Could not find or load main class” 怎么办
这几乎从来不是代码问题,而是 java 命令没对上类名或工作目录错了。核心规则只有一条:java 后面跟的是**全限定类名**,不是文件名,也不是路径。
- 如果源码没写
package,类名HelloWorld→ 文件叫HelloWorld.java→ 运行用java HelloWorld - 如果写了
package com.example;,文件必须放在com/example/HelloWorld.java,且working_dir必须是com的上一级目录(即包含com/的那个目录) - 别用
java -cp . $file——$file是/path/to/HelloWorld.java,java不认路径,只认类名 - 类有
public修饰时,文件名必须和类名完全一致(大小写敏感),否则javac直接拒绝编译
最易忽略的一点:Sublime 的构建系统是单次执行,不维护状态。每次运行都从头编译,不会自动清理旧 .class 文件。如果改了 package 但旧 .class 还在平级目录下,java 可能误加载它导致行为异常——手动删掉所有 .class 再试,比猜报错原因快得多。
Java免费学习笔记:立即使用
解锁 Java 大师之旅:从入门到精通的终极指南










