开发环境
vfox 管理 JDK 版本
前往 vfox Releases 页面下载最新版本的 setup 安装器, 然后按照安装向导安装 vfox.
调整 vfox 配置:
bash
vfox config storage.sdkPath "d:/Software/vfox"
vfox config registry.address "https://gitee.com/version-fox/vfox-plugins/raw/main/plugins"添加 Java 插件:
bash
vfox add java安装 Temurin JDK (完全免费):
bash
vfox install java@8-tem
vfox install java@11-tem
vfox install java@17-tem
vfox install java@21-tem
# vfox install java@8
# vfox install java@11
# vfox install java@17
# vfox install java@21设置 JDK 版本:
bash
# 全局
vfox use -g java@8
# 项目
vfox use -p java@8验证结果:
bash
java -version
# 输出
openjdk version "1.8.0_462"
OpenJDK Runtime Environment (Temurin)(build 1.8.0_462-b08)
OpenJDK 64-Bit Server VM (Temurin)(build 25.462-b08, mixed mode)VS Code 配置开发环境
VS Code 轻量、快速启动、适合小型项目和学习, 降低初学者入门难度.
推荐插件:
Java Extension Pack 配置
全局配置:
json
{
// 配置 JDK 路径, 根据你的实际路径修改
// "java.jdt.ls.java.home": "C:/Program Files/Java/jdk8",
// 如果使用 vfox 管理 JDK 版本
"java.jdt.ls.java.home": "C:/Users/<user>/.version-fox/sdks/java",
// 或者使用环境变量方式
"java.configuration.runtimes": [
{
"name": "JDK8",
"path": "D:/Software/vfox/cache/java/jdk8",
"default": true
},
{
"name": "JDK11",
"path": "D:/Software/vfox/cache/java/jdk11"
},
{
"name": "JDK17",
"path": "D:/Software/vfox/cache/java/jdk17"
},
{
"name": "JDK21",
"path": "D:/Software/vfox/cache/java/jdk21"
}
],
// 编译相关
"java.compile.nullAnalysis.mode": "automatic",
"java.autobuild.enabled": true,
"java.configuration.updateBuildConfiguration": "automatic",
// 代码补全和提示
"java.completion.enabled": true,
"java.completion.guessMethodArguments": "off",
"java.completion.filteredTypes": [
"java.awt.*",
"com.sun.*"
],
// 调试配置
"java.debug.settings.console": "integratedTerminal",
"java.debug.settings.showStaticVariables": false,
"java.debug.settings.showQualifiedNames": false,
// 代码格式化
"java.format.settings.url": "",
"java.format.settings.profile": "GoogleStyle",
"java.format.enabled": true,
"editor.formatOnSave": true,
"editor.formatOnPaste": true,
// 导入和引用
"java.saveActions.organizeImports": true,
"java.references.includeAccessors": true,
// 内存优化
"java.jdt.ls.vmargs": "-Xmx2G -Xms512m -XX:+UseG1GC -XX:+UseStringDeduplication",
// 项目视图
"java.dependency.packagePresentation": "flat",
"java.dependency.showMembers": false,
// 测试配置
"java.test.config": {
"vmArgs": ["-ea"]
},
"java.test.defaultConfig": "",
// 代码检查和提示
"java.errors.incompleteClasspath.severity": "warning",
"java.semanticHighlighting.enabled": true,
"java.signatureHelp.enabled": true,
// Maven 配置
"maven.executable.path": "",
"maven.terminal.customEnv": [],
"maven.terminal.useJavaHome": true,
"maven.excludedFolders": [
"**/.*",
"**/node_modules",
"**/target"
]
}Code Runner 配置
全局配置:
json
{
// 1. 基础配置
"code-runner.clearPreviousOutput": true, // 运行前清空输出
"code-runner.saveFileBeforeRun": true, // 运行前保存当前文件
// 2. 输出和显示配置
"code-runner.runInTerminal": true, // 在集成终端中运行
"code-runner.terminalRoot": "/", // 终端根目录
// 3. 语言特定配置
"code-runner.ignoreSelection": true, // 忽略选中内容
"code-runner.executorMap": { // 执行器映射(见下方详细配置)
// 这里配置各语言的运行命令
"java": "cd $dir && javac -encoding UTF-8 -d . $fileName && java -Dfile.encoding=UTF-8 $fileNameWithoutExt"
},
}关于语言运行命令的配置:
json
{
// 基础配置
"code-runner.executorMap": {
"java": "cd $dir && javac $fileName && java $fileNameWithoutExt"
},
// 指定路径和编码, 解决 Windows 环境编码问题
"code-runner.executorMap": {
"java": "cd $dir && javac -encoding UTF-8 -d . $fileName && java -Dfile.encoding=UTF-8 $fileNameWithoutExt"
},
// 带类路径的配置
"code-runner.executorMap": {
"java": "cd $dir && javac -cp \"lib/*\" $fileName && java -cp \".;lib/*\" $fileNameWithoutExt"
},
}变量说明:
| 变量 | 说明 | 示例 |
|---|---|---|
| $dir | 文件所在目录 | D:/projects/test |
| $fileName | 完整文件名 | Main.java |
| $fileNameWithoutExt | 无扩展名的文件名 | Main |
| $fullFileName | 完整路径 | D:/projects/test/Main.java |
| $workspaceRoot | 工作区根目录 | D:/projects |
EditorConfig 配置
项目级完整配置:
ini
# EditorConfig 官网: https://editorconfig.org/
# 这是根配置文件,停止向上查找
root = true
# ============================================
# 通用配置(所有文件)
# ============================================
[*]
# 字符编码
charset = utf-8
# 行尾符(Linux/Mac: lf, Windows: crlf)
end_of_line = lf
# 文件末尾保留一个空行
insert_final_newline = true
# 删除行尾空格
trim_trailing_whitespace = true
# ============================================
# Java 源代码文件配置
# ============================================
[*.java]
# 缩进风格:空格
indent_style = space
# 缩进大小:4个空格(Java 官方推荐)
indent_size = 4
# 最大行宽
max_line_length = 120
# Tab 宽度
tab_width = 4
# ============================================
# XML 配置文件(pom.xml, 配置等)
# ============================================
[*.xml]
indent_style = space
indent_size = 2
# ============================================
# YAML 配置文件(application.yml 等)
# ============================================
[*.{yml,yaml}]
indent_style = space
indent_size = 2
# ============================================
# 属性文件
# ============================================
[*.properties]
indent_style = space
indent_size = 2
# ============================================
# Markdown 文档
# ============================================
[*.md]
trim_trailing_whitespace = false # Markdown 可能需要行尾空格
max_line_length = 80
# ============================================
# Git 相关文件
# ============================================
[.gitignore]
indent_style = space
indent_size = 2
# ============================================
# Gradle 构建文件
# ============================================
[*.gradle]
indent_style = space
indent_size = 2
# ============================================
# SQL 文件
# ============================================
[*.sql]
indent_style = space
indent_size = 2
keyword_case = upper
identifier_case = lower
# ============================================
# JSON 文件
# ============================================
[*.json]
indent_style = space
indent_size = 2
# ============================================
# 排除不需要格式化的文件
# ============================================
# 1. 二进制文件
[*.{jpg,jpeg,png,gif,ico,svg,woff,woff2,ttf,eot}]
charset = binary
trim_trailing_whitespace = false
insert_final_newline = false
# 2. 生成的文件
[target/**] # Maven 输出目录
[build/**] # Gradle 输出目录
[bin/**] # 传统输出目录
[out/**] # IntelliJ 输出目录
trim_trailing_whitespace = false
insert_final_newline = false
# 3. 锁文件
[package-lock.json]
[yarn.lock]
[gradle.lockfile]
trim_trailing_whitespace = false
insert_final_newline = false
# ============================================
# 不同目录的特殊配置
# ============================================
# 测试文件可能有不同的配置
[src/test/java/*.java]
# 可以保持与主代码相同,或单独配置
# 资源文件
[src/main/resources/**]
trim_trailing_whitespace = false项目级简化配置:
ini
# 顶层配置,对所有文件生效
root = true
[*] # 对所有文件生效
charset = utf-8
end_of_line = lf
insert_final_newline = true
trim_trailing_whitespace = true
# Java 文件特定配置
[*.java]
indent_style = space
indent_size = 4
max_line_length = 120