在VS Code编写Java时突遇“Error: Source file not found”求解决建议
解决Java文件报"Error: Source file not found"的方案
1. 修正VS Code的VM参数配置错误
你的settings.json里把编译参数--source 21放到了VM运行选项里,这是核心问题之一:
// 错误配置 "jdk.runConfig.vmOptions": "--enable-preview --source 21" // 修改为 "jdk.runConfig.vmOptions": "--enable-preview"
--source 21是javac编译器的参数,不属于Java运行时的VM选项,混在一起会导致运行命令参数混乱。
2. 检查并修复VS Code运行配置
打开项目下的.vscode/launch.json(没有的话通过Cmd+Shift+P输入Java: Create Launch Configuration生成),确保配置指向正确的主类:
{ "version": "0.2.0", "configurations": [ { "type": "java", "name": "Current File", "request": "launch", "mainClass": "${file}" }, { "type": "java", "name": "HelloWorld", "request": "launch", "mainClass": "HelloWorld", "projectName": "Java-Programmering-24_f689343" } ] }
这个配置会直接运行当前打开的Java文件,或指定的HelloWorld主类,避免参数冲突。
3. 清理Java语言服务缓存
VS Code的Java扩展(JDT)缓存可能出现路径异常:
- 按
Cmd+Shift+P打开命令面板 - 输入
Java: Clean Java Language Server Workspace并执行 - 重启VS Code后再尝试运行文件
4. 手动编译运行验证(排除JDK问题)
在终端进入Java文件所在目录,手动执行编译和运行命令,确认JDK本身正常:
# 编译 javac --enable-preview -source 21 HelloWorld.java # 运行 java --enable-preview HelloWorld
如果这两步成功,说明问题完全出在VS Code的配置或缓存上。
5. 确认项目结构有效性
确保你的Java项目被VS Code正确识别:
- 普通项目需要有
.classpath和.project文件(可通过Java: Add Folder to Java Workspace添加当前目录生成) - 避免将Java文件放在带特殊字符的目录(当前路径的空格已转义,暂不影响)
内容的提问来源于stack exchange,提问作者kelley.s
相关产品推荐
相关产品推荐

