在 VS Code 中试用

在 VS Code 中管理 Java 项目

Project Manager for Java 扩展可帮助你管理 Java 项目及其依赖项。它还可以帮助你创建新的 Java 项目、包和类。若要在 Visual Studio Code 中获得完整的 Java 语言支持,可以安装 Extension Pack for Java,其中包含了 Project Manager for Java 扩展。

安装 Extension Pack for Java

有关如何开始使用此扩展包的详细信息,请查阅 Java 入门教程。

项目视图

Java Projects 视图可帮助你查看 Java 项目及其依赖项,并提供了项目管理任务的入口点。

project view

默认情况下,Java Projects 视图显示在 Explorer 视图下方。如果看不到,请尝试单击 EXPLORER 标题栏中的 ... 按钮,然后选择 Java Projects

导航栏的溢出按钮中提供了更多选项。例如,可以在层次视图和平面视图之间切换。

overflow button

在 Explorer 中的节点旁边,你可以找到一些按钮,它们提供了许多操作的便捷快捷方式。

inline button

每个节点的上下文菜单中也有许多有用的功能,你可以在 Explorer 中右键单击节点以将其切换出来。

context menu

创建新的 Java 项目

你可以通过单击导航栏中的“+”按钮,或通过命令面板中的命令:Java: Create Java Project... 来创建新的 Java 项目(⇧⌘P (Windows, Linux Ctrl+Shift+P))。创建过程中,如果尚未安装所需扩展,VS Code 将根据项目类型协助你安装所需的扩展。

create project

导入 Java 项目

你可以通过 文件 > 打开文件夹... 直接将现有 Java 项目和模块导入到工作区中(请确保打开的文件夹包含你的构建工具脚本,例如 pom.xmlbuild.gradle)。VS Code for Java 将自动检测并导入你的项目。

当你向项目添加新模块时,可以触发命令 Java: Import Java projects in workspace 将其导入到工作区。此命令有助于将新项目导入工作区,而无需重新加载 VS Code 窗口。

导出为 JAR

你可以从项目视图中或通过运行命令 Java: Export Jar... 将构建导出为 JAR。

Export jar from the project view

配置项目运行时

随着 Java 的发展,开发者使用多个 JDK 版本是很常见的。你可以通过设置:java.configuration.runtimes 将它们映射到本地安装路径。此设置具有以下格式

"java.configuration.runtimes": [
  {
    "name": "JavaSE-1.8",
    "path": "/usr/local/jdk1.8.0_201"
  },
  {
    "name": "JavaSE-11",
    "path": "/usr/local/jdk-11.0.3",
    "sources" : "/usr/local/jdk-11.0.3/lib/src.zip",
    "javadoc" : "https://docs.oracle.com/en/java/javase/11/docs/api",
    "default":  true
   },
   {
    "name": "JavaSE-12",
    "path": "/usr/local/jdk-12.0.2"
   },
   {
    "name": "JavaSE-13",
    "path": "/usr/local/jdk-13"
   }
]

注意:你可以通过向条目添加 "default": true 将其中一个设置为默认值。默认 JDK 将用于你的非托管文件夹(没有构建工具)。

要查看哪些 JDK 用于你的项目,可以在命令面板⇧⌘P (Windows, Linux Ctrl+Shift+P))中触发命令 Java: Configure Java Runtime。此命令将打开一个视图,显示项目的运行时信息

Project runtime

更改 Maven 和 Gradle 项目的 JDK

如果你想更改 Maven 或 Gradle 项目的 JDK 版本,需要在构建脚本中进行更新(pom.xmlbuild.gradle)。你可以单击 查看如何进行这些更改。单击 将导航到项目的构建脚本文件。

更改非托管文件夹的 JDK

要更改非托管文件夹(没有任何构建工具)的 JDK,可以单击 按钮。它将列出所有 JDK,你可以为非托管文件夹选择一个。

下载 JDK

如果你想下载新的 JDK,可以点击 download 链接,或者在命令面板⇧⌘P (Windows, Linux Ctrl+Shift+P))中触发命令 Java: Install New JDK。它将打开一个新视图,引导你下载 JDK。

Download-jdk

注意:要启用 Java 预览功能,请参阅如何在 VS Code 中使用新的 Java 版本

配置非托管文件夹的类路径

Project Management for Java 扩展提供了一个用户界面来配置非托管文件夹的类路径。可以在类路径配置页面手动设置类路径。你可以通过从命令面板(⇧⌘P (Windows, Linux Ctrl+Shift+P))执行命令 Java: Configure Classpath 来打开它。

configure classpath

在极少数情况下,你可能需要通过从命令面板(⇧⌘P (Windows, Linux Ctrl+Shift+P))执行命令 Java: Clean Java Language Server Workspace 来清理 Java 工作区,以让语言服务器重新构建你的依赖项。

依赖项管理

添加 Maven 依赖项

对于 Maven 项目,你可以在项目视图中点击 Maven Dependencies 节点旁边的“+”图标来添加依赖项。

add maven dependency

管理非托管文件夹的依赖项

如果你的项目是没有构建工具的非托管文件夹。你可以通过点击 Referenced Libraries 节点或其下项目的“+”或“-”图标来管理依赖项,或者你可以直接将你的 jar 库拖动到节点 Referenced Libraries

manage referenced libraries

你也可以在类路径配置页面管理依赖项。参见:配置非托管文件夹的类路径

在幕后,settings.json 中有一个设置 java.project.referencedLibraries。以下是有关如何自定义此设置的详细信息。

包含库

要引用的库使用一组 glob 模式进行描述。

例如

"java.project.referencedLibraries": [
    "library/**/*.jar",
    "/home/username/lib/foo.jar"
]

上述设置会将工作区库文件夹中的所有 .jar 文件以及指定绝对路径下的 foo.jar 添加到项目的外部依赖项中。

然后,VS Code 会监视引用的库,如果这些依赖文件中的任何一个发生更改,项目将自动刷新。

默认情况下,VS Code 将使用 glob 模式 lib/**/*.jar 引用工作区 lib 目录中的所有 JAR 文件。

排除某些库

如果你想从项目中排除某些库,可以展开 java.project.referencedLibraries 以使用 include/exclude 字段并添加一个 exclude glob 模式

"java.project.referencedLibraries": {
    "include": [
        "library/**/*.jar",
        "/home/username/lib/foo.jar"
    ],
    "exclude": [
        "library/sources/**"
    ]
}

在上面的示例中,library/sources 文件夹中的任何二进制 JAR 文件都将被忽略,不作为项目的外部依赖项。

附加源码 JAR

默认情况下,引用的 {binary}.jar 将尝试在同一目录下搜索 {binary}-sources.jar,如果找到匹配项,则将其附加为源码。

如果你想手动指定一个 JAR 文件作为源码附件,可以在 sources 字段中提供一个键值映射

"java.project.referencedLibraries": {
    "include": [
        "library/**/*.jar",
        "/home/username/lib/foo.jar"
    ],
    "exclude": [
        "library/sources/**"
    ],
    "sources": {
        "library/bar.jar": "library/sources/bar-src.jar"
    }
}

这样,bar-src.jar 就作为 bar.jar 的源码附加。

轻量模式

VS Code for Java 支持两种模式:轻量模式和标准模式。在轻量模式下,语言服务器只解析源文件和 JDK;在标准模式下,解析导入的依赖项并由语言服务器构建项目。轻量模式最适合需要快速启动且轻量环境来处理源文件的情况,例如阅读源代码、在源代码和 JDK 之间导航、查看大纲和 Javadoc,以及检测和修复语法错误。此外,在源文件和 JDK 范围内支持代码补全。

轻量模式不解析导入的依赖项,也不构建项目,因此不支持运行、调试、重构、linting 或检测语义错误。要使用这些功能,需要将工作区从轻量模式切换到标准模式。

你可以通过配置 java.server.launchMode 设置来控制以哪种模式启动,选项如下

  • Hybrid(混合模式,默认)- 首先,工作区以轻量模式打开。如果工作区包含未解析的 Java 项目,将询问你是否切换到标准模式。如果选择稍后,将保持轻量模式。你可以点击状态栏上的语言状态项手动切换到标准模式。
  • Standard(标准模式)- 工作区以标准模式打开。
  • LightWeight(轻量模式)- 工作区以轻量模式打开。你可以点击状态栏上的语言状态项手动切换到标准模式。

语言状态项使用不同的图标指示当前工作区所处的模式。

  • - 工作区以轻量模式打开。
  • - 工作区正在以标准模式打开。
  • - 工作区以标准模式打开。

点击语言状态项可切换到标准模式。

Switch to Standard

构建状态

当你在 Visual Studio Code 中编辑 Java 源代码时,Java 语言服务器正在构建你的工作区,以便为你提供必要的语言功能。你可以通过点击状态栏中的语言状态项来查看详细的构建任务状态并了解幕后发生的情况。当通知显示语言服务器正在打开 Java 项目时,你也可以选择检查详情链接来查看构建任务状态。

其他资源

Visual Studio Code 中有多个扩展支持不同的 Java 构建系统。以下是一些流行的构建系统的扩展。

如果你在使用上述功能时遇到任何问题,可以通过提交 issue 联系我们。

后续步骤

继续阅读以了解更多关于

  • Java 编辑 - 了解 VS Code 中 Java 的编辑功能。
  • Java 调试 - 了解如何使用 VS Code 调试 Java 项目。
  • Java 测试 - 在 VS Code 中使用 JUnit 和 TestNG 测试用例。
  • Java 扩展 - 了解更多适用于 VS Code 的有用 Java 扩展。