跳转到内容

开发环境

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 配置

项目级完整配置:

.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

项目级简化配置:

.editorconfig
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

基于 MIT 许可发布