VS Code拓展--Language Support for Java(TM) by Red Hat(1.3.0)
Language Support for Java(TM) by Red Hat(1.3.0)
注意:版本问题,可能会有部分出入
功能目录
设置
- 
java.home作用: 指定用于启动 Java 语言服务器的 JDK (11或更近版本)的文件夹路径。在 Windows 上,反斜杠必须转义 "java.home":"C:\\Program Files\\Java\\jdk11.0_8"默认值: null
- 
java.jdt.ls.java.home作用: 指定用于启动Java语言服务器的JDK(11或更近版本)的文件夹路径。此设置将替换Java扩展的嵌入式JRE以启动Java语言服务器。在Windows上,反斜杠必须转义 "java.jdt.ls.java.home":"C:\\Program Files\\Java\\jdk11.0_8"默认值: null
- 
java.jdt.ls.vmargs作用: 指定用于启动Java语言服务器的额外VM参数 "java.jdt.ls.vmargs":"-XX:+UseParallelGC -XX:GCTimeRatio=4 -XX:AdaptiveSizePolicyWeight=90 -Dsun.zip.disableMemoryMapping=true -Xmx1G -Xms100m" // 优化并行垃圾收集器的内存使用默认值: -XX:+UseParallelGC -XX:GCTimeRatio=4 -XX:AdaptiveSizePolicyWeight=90 -Dsun.zip.disableMemoryMapping=true -Xmx1G -Xms100m
- 
java.errors.incompleteClasspath.severity作用: 指定Java文件的类路径不完整时消息的严重性 "java.errors.incompleteClasspath.severity": "warning"默认值: warning
- 
java.configuration.checkProjectSettingsExclusions作用: 控制是否从文件管理器中排除扩展生成的项目设置文件(.project, .classpath, .factorypath, .settings/) "java.configuration.checkProjectSettingsExclusions": true默认值: true
- 
java.configuration.updateBuildConfiguration作用: 指定对生成文件的修改如何更新Java类路径/配置 "java.configuration.updateBuildConfiguration": "interactive"默认值: interactive
- 
java.trace.server作用: 跟踪VS代码与Java语言服务器之间的通信 "java.trace.server": "off"默认值: off
- 
java.import.maven.enabled作用: 启用/禁用 Maven 导入器 "java.import.maven.enabled": true默认值: true
- 
java.import.gradle.enabled作用: 启用/禁用 Gradle 导入程序 "java.import.gradle.enabled": true默认值: true
- 
java.import.gradle.wrapper.enabled作用: 使用 gradle-wrapper.properties文件中的Gradle"java.import.gradle.wrapper.enabled": true默认值: true
- 
java.import.gradle.version作用: 如果Gradle包装丢失或禁用,请使用特定版本的Gradle "java.import.gradle.version": null默认值: null
- 
java.import.gradle.home作用: 如果Gradle包装器丢失或禁用且没有指定 java.import.gradle.version,请从指定的本地安装目录或 Gradle_HOME 使用 Gradle"java.import.gradle.home": null默认值: null
- 
java.import.gradle.offline.enabled作用: 启用/禁用 Gradle离线模式 "java.import.gradle.offline.enabled": false默认值: false
- 
java.import.gradle.arguments作用: 要传递给 Gradle的参数 "java.import.gradle.arguments": null默认值: null
- 
java.import.gradle.jvmArguments作用: 要传递给 Gradle的JVM参数 "java.import.gradle.jvmArguments": null默认值: null
- 
java.import.gradle.user.home作用: 设置 GRADLE_USER_HOME "java.import.gradle.user.home": null默认值: null
- 
java.maven.downloadSources作用: 作为导入Maven项目的一部分,启用/禁用Maven源工件的下载 "java.maven.downloadSources": false默认值: false
- 
java.eclipse.downloadSources作用: 为Eclipse项目启用/禁用Maven源代码工件的下载 "java.eclipse.downloadSources": false默认值: false
- 
java.maven.updateSnapshots作用: 强制更新快照 "java.maven.updateSnapshots": false默认值: false
- 
java.referencesCodeLens.enabled作用: 启用/禁用参考CodeLens(显示引用) "java.referencesCodeLens.enabled": false默认值: false
- 
java.signatureHelp.enabled作用: 启用/禁用识别标志帮助 "java.signatureHelp.enabled": false默认值: false
- 
java.implementationsCodeLens.enabled作用: 启用/禁用实例CodeLens(显示引用) "java.implementationsCodeLens.enabled": false默认值: false
- 
java.configuration.maven.userSettings作用: 设置 Maven 用户配置文件(settings.xml)的路径 "java.configuration.maven.userSettings": null默认值: null
- 
java.configuration.maven.globalSettings作用: 设置 Maven 全局配置文件(settings.xml)的路径 "java.configuration.maven.globalSettings": null默认值: null
- 
java.configuration.maven.notCoveredPluginExecutionSeverity作用: 指定插件执行不在Maven build lifecycle范围内时的严重性 "java.configuration.maven.notCoveredPluginExecutionSeverity": "warning"默认值: warning
- 
java.configuration.workspaceCacheLimit作用: - 
保留未使用的工作区缓存数据的天数(如果启用) 
- 
超过此限制后,缓存的工作区数据可能会被删除 
 "java.configuration.workspaceCacheLimit": null默认值: null
- 
- 
java.format.enabled作用: 启用/禁用默认Java格式化程序 "java.format.enabled": true默认值: true
- 
java.saveActions.organizeImports作用: 启用/禁用保存操作时自动组织导入 "java.saveActions.organizeImports": false默认值: false
- 
java.import.exclusions作用: - 配置排除文件夹的全局模式
- 使用 !取消模式以允许子文件夹导入,你必须包含一个父目录
- 顺序很重要
 "java.import.exclusions": "**/node_modules/**,**/.metadata/**,**/archetype-resources/**,**/META-INF/maven/**"默认值: **/node_modules/**,**/.metadata/**,**/archetype-resources/**,**/META-INF/maven/**
- 
java.import.generatesMetadataFilesAtProjectRoot作用: 指定是否在项目根目录下生成项目元数据文件 (.project, .classpath, .factorypath, .settings/) 单击此处了解如何更改设置以使其生效 "java.import.generatesMetadataFilesAtProjectRoot": false默认值: false
- 
java.project.referencedLibraries作用: 配置glob模式,以便将本地库引用到Java项目 "java.project.referencedLibraries": "lib/**/*.jar"默认值: lib/**/*.jar
- 
java.project.outputPath作用: - 存储编译输出的工作空间的相对路径
- 仅在工作区范围内有效
- 该设置不会影响Maven或Gradle项目
 "java.project.outputPath":默认值:`` 
- 
java.project.sourcePaths作用: - 存储源文件的工作区的相对路径
- 仅在工作区范围内有效
- 该设置不会影响Maven或Gradle项目
 "java.project.sourcePaths":默认值:`` 
- 
java.contentProvider.preferred作用: 你喜欢的Content Providers(通常是第三方反编译器id) "java.contentProvider.preferred": null默认值: null
- 
java.autobuild.enabled作用: 启用/禁用"自动生成"(auto build) "java.autobuild.enabled": true默认值: true
- 
java.maxConcurrentBuilds作用: 最大同步项目构建数 "java.maxConcurrentBuilds": 1默认值: 1
- 
java.recommendations.dependency.analytics.show作用: 显示推荐的依赖项分析扩展 "java.recommendations.dependency.analytics.show": true默认值: true
- 
java.completion.maxResults作用: - 最大完成结果数(不包括代码段)
- 0(默认值)禁用该限制,将返回所有结果
- 在性能问题的情况下,考虑设置一个合理的限制
 "java.completion.maxResults": 0默认值: 0
- 
java.completion.enabled作用: 启用/禁用代码补全支持 "java.completion.enabled": true默认值: true
- 
java.completion.overwrite作用: - 设置为true时,代码补全将覆盖当前文本
- 当设置为false时,只需添加代码即可
 "java.completion.overwrite": true默认值: true
- 
java.completion.guessMethodArguments作用: 当设置为true时,当从代码辅助方案列表中选择方法时,会猜测方法参数 "java.completion.guessMethodArguments": false默认值: false
- 
java.completion.favoriteStaticMembers作用: 定义静态成员或具有静态成员的类型的列表。即使缺少导入,Content assist也会推荐这些静态成员 "java.completion.favoriteStaticMembers": "org.junit.Assert.*,org.junit.Assume.*,org.junit.jupiter.api.Assertions.*,org.junit.jupiter.api.Assumptions.*,org.junit.jupiter.api.DynamicContainer.*,org.junit.jupiter.api.DynamicTest.*,org.mockito.Mockito.*,org.mockito.ArgumentMatchers.*,org.mockito.Answers.*"默认值: org.junit.Assert.*,org.junit.Assume.*,org.junit.jupiter.api.Assertions.*,org.junit.jupiter.api.Assumptions.*,org.junit.jupiter.api.DynamicContainer.*,org.junit.jupiter.api.DynamicTest.*,org.mockito.Mockito.*,org.mockito.ArgumentMatchers.*,org.mockito.Answers.*
- 
java.completion.filteredTypes作用: - 定义类型过滤器。在内容辅助或快速修复方案中以及在组织导入时,将忽略其完全限定名称与所选筛选器字符串匹配的所有类型
- 例如 java.awt.*将对awt包隐藏所有类型
 "java.completion.filteredTypes": "java.awt.*,com.sun.*,sun.*,jdk.*,org.graalvm.*,io.micrometer.shaded.*"默认值: java.awt.*,com.sun.*,sun.*,jdk.*,org.graalvm.*,io.micrometer.shaded.*
- 
java.completion.importOrder作用: - 定义导入语句的排序顺序
- 包或类型名称前缀(例如“org.eclipse”)是有效的条目
- 导入始终添加到最特定的组
 "java.completion.importOrder": "java,javax,com,org"默认值: java,javax,com,org
- 
java.foldingRange.enabled作用: 启用/禁用智能折叠范围支持。如果禁用,它将使用 VS Code 提供的默认基于缩进的折叠范围 "java.foldingRange.enabled": true默认值: true
- 
java.progressReports.enabled作用: [实验性]启用/禁用服务器上后台进程的进度报告 "java.progressReports.enabled": true默认值: true
- 
java.format.settings.url作用: 指定Eclipse格式化程序xml设置的url或文件路径 "java.format.settings.url": null默认值: null
- 
java.format.settings.profile作用 Eclipse格式化程序设置中的可选格式化程序配置文件名称 "java.format.settings.profile": null默认值: null
- 
java.format.comments.enabled作用 包括代码格式化期间的注释 "java.format.comments.enabled": true默认值: true
- 
java.format.onType.enabled作用 在键入 ;时启用/禁用自动块格式<输入>或}"java.format.onType.enabled": true默认值: true
- 
java.codeGeneration.hashCodeEquals.useJava7Objects作用 - 使用 Objects.hash和Objects.equals时生成生成hashCode和equals methods
- 此设置仅适用于Java 7及更高版本
 "java.codeGeneration.hashCodeEquals.useJava7Objects": false默认值: false
- 使用 
- 
java.codeGeneration.hashCodeEquals.useInstanceof作用 在生成hashCode和equals方法时,使用 instanceof比较类型"java.codeGeneration.hashCodeEquals.useInstanceof": false默认值: false
- 
java.codeGeneration.useBlocks作用 生成方法时,在“if”语句中使用块 "java.codeGeneration.useBlocks": false默认值: false
- 
java.codeGeneration.generateComments作用 生成方法时生成方法注释 "java.codeGeneration.generateComments": false默认值: false
- 
java.codeGeneration.toString.template作用 用于生成toString方法的模板 "java.codeGeneration.toString.template": "${object.className} [${member.name()}=${member.value}, ${otherMembers}]"默认值: ${object.className} [${member.name()}=${member.value}, ${otherMembers}]
- 
java.codeGeneration.toString.codeStyle作用 生成 toString 方法的代码风格 "java.codeGeneration.toString.codeStyle": "STRING_CONCATENATION"默认值: STRING_CONCATENATION
- 
java.codeGeneration.toString.skipNullValues作用 生成toString方法时跳过空值 "java.codeGeneration.toString.skipNullValues": false默认值: false
- 
java.codeGeneration.toString.listArrayContents作用 列出数组的内容,而不是使用本地toString() "java.codeGeneration.toString.listArrayContents": true默认值: true
- 
java.codeGeneration.toString.limitElements作用 - 限制要列出的数组/集合/映射中的项目数
- 如果为 0则列出所有项目
 "java.codeGeneration.toString.limitElements": 0默认值: 0
- 
java.codeGeneration.insertionLocation作用 指定源操作生成的代码的插入位置 - afterCursor: 在光标所在的成员后面插入生成的代码
- beforeCursor: 在光标所在成员之前插入生成的代码
- lastMember: 插入生成的代码作为目标类型的最后一个成员
 "java.codeGeneration.insertionLocation": "afterCursor"默认值: afterCursor
- 
java.selectionRange.enabled作用 - 启用/禁用对Java的智能选择支持
- 禁用此选项不会影响VS代码内置的基于单词和基于括号的智能选择
 "java.selectionRange.enabled": true默认值: true
- 
java.showBuildStatusOnStart.enabled作用 启动时自动显示生成状态 - notification:通过进度通知显示构建状态
- terminal:通过终端显示构建状态
- off:不显示任何构建状态
 为了向后兼容,此设置还接受布尔值,其中true与notification和false具有相同含义off "java.showBuildStatusOnStart.enabled": `notification`默认值: notification
- 
java.configuration.runtimes作用 将Java执行环境映射到本地JDK "java.configuration.runtimes":默认值:`` 
- 
java.server.launchMode作用 Java扩展的启动模式- Standard:提供完整的功能,如智能感知、重构、构建、Maven/Gradle 支持等...
- LightWeight:以较低的启动成本启动语法服务器。仅提供大纲、导航、javadoc、语法错误等语法功能。轻量级模式不会加载第三方扩展,如java test runner、java debugger等。
- Hybrid:提供具有更好响应能力的完整功能。它启动一个标准语言服务器和一个辅助语法服务器。语法服务器提供语法功能,直到标准服务器准备好。标准服务器完全准备好后,语法服务器将自动关闭
 "java.server.launchMode": "Hybrid"默认值: Hybrid
- 
java.sources.organizeImports.starThreshold作用 指定在使用star-import之前添加的导入数 "java.sources.organizeImports.starThreshold": 99默认值: 99
- 
java.sources.organizeImports.staticStarThreshold作用 指定在使用star-import之前添加的静态导入数 "java.sources.organizeImports.staticStarThreshold": 99默认值: 99
- 
java.imports.gradle.wrapper.checksums作用 定义Gradle包装的允许/不允许SHA-256校验和 "java.imports.gradle.wrapper.checksums":默认值:`` 
- 
java.project.importOnFirstTimeStartup作用 指定首次以(Hybrid)混合模式 
 支持的值是- disabled(从不导入)
- interactive(要求导入或不导入)
- automatic(总是导入)
 "java.project.importOnFirstTimeStartup": "automatic"默认值: automatic
- 
java.project.importHint作用 启动时跳过Java项目导入时,启用/禁用服务器模式切换信息 "java.project.importHint": true默认值: true
- 
java.project.resourceFilters作用 - 不让Java语言服务器刷新文件和文件夹,这可以提高整体性能
- ["node_modules",".git"]将排除所有名为- node_modulesor- .git的文件和文件夹
 "java.project.resourceFilters": "node_modules,.git"默认值: node_modules,.git
- 
java.templates.fileHeader作用 - 指定新Java文件的文件头注释
- 支持使用字符串数组配置多行注释,并使用${variable}引用预定义变量
 "java.templates.fileHeader":默认值:`` 
- 
java.templates.typeComment作用 - 指定新Java类型的类型注释
- 支持使用字符串数组配置多行注释,并使用${variable}引用预定义变量
 "java.templates.typeComment":默认值:`` 
- 
java.references.includeAccessors作用 在查找引用时包括getter、setter和builder/constructor "java.references.includeAccessors": true默认值: true
- 
java.references.includeDecompiledSources作用 在查找引用时包括反编译的源代码 "java.references.includeDecompiledSources": true默认值: true
- 
java.typeHierarchy.lazyLoad作用 - 启用/禁用延迟加载类型层次结构中的内容
- 延迟加载可以节省大量加载时间,但每个类型都应该手动扩展以加载其内容
 "java.typeHierarchy.lazyLoad": false默认值: false
- 
java.settings.url作用 指定工作区Java设置的url或文件路径。请参见设置全局首选项 "java.settings.url": null默认值: null
- 
java.symbols.includeSourceMethodDeclarations作用 在符号搜索中包含源文件中的方法声明 "java.symbols.includeSourceMethodDeclarations": false默认值: false
- 
java.quickfix.showAt作用 在问题或行级别显示快速修复 "java.quickfix.showAt": "line"默认值: line
命令
- 
java.server.mode.switch切换到标准模式 
- 
java.projectConfiguration.update更新项目 
- 
java.project.import将Java项目导入工作区 
- 
java.open.serverLog打开Java语言服务器日志文件 
- 
java.open.clientLog打开Java扩展日志文件 
- 
java.open.logs打开所有日志文件 
- 
java.workspace.compile强制Java编译 
- 
java.open.formatter.settings打开Java格式化程序设置 
- 
java.clean.workspace清理Java语言服务器工作区 
- 
java.project.updateSourceAttachmentAttach Source 
- 
java.project.addToSourcePath将文件夹添加到Java源路径 
- 
java.project.removeFromSourcePath从Java源路径中删除文件夹 
- 
java.project.listSourcePaths列出所有Java源路径 
- 
java.show.server.task.status显示建立工作状态 
- 
java.action.navigateToSuperImplementation转到实现该方法的类文件的父文件 
- 
java.action.showTypeHierarchy显示类型层次结构 
- 
java.action.showClassHierarchy显示类层次结构 
- 
java.action.showSupertypeHierarchy显示超类型层次结构 
- 
java.action.showSubtypeHierarchy显示子类型层次结构 
- 
java.action.changeBaseType基于this类型 
- 
java.action.clipboardPasteAction导入所有需要导入的类 快捷键: Ctrl + Shift + V
设置的使用
如果只是新手使用Language Support for Java(TM) by Red Hat拓展的LightWeight【轻量级模式】就够了
Language Support for Java(TM) by Red Hat拓展默认是Hybrid【混合模式】
- 
在你的工作目录(如果不懂先学一下这个概念) 比如有一个目录(myProject)【随便】 在这个目录下建一个 .vscode目录- 在.vscode中是专门添加一些配置文件【会覆盖你对VScode的一些设置】
- 文件名必须是 .vscode
 在 .vscode目录新建settings.json文件配置就在 settings.json文件其中添加,上面的选项根据自身需求添加即可
- 在
- 
1示例(使用拓展的LightWeight模式): { "java.server.launchMode": "LightWeight" }
- 
2示例(使用混合模式,打开文件夹时不想导入 Java 项目) { "java.server.launchMode": "LightWeight", "java.project.importOnFirstTimeStartup": "disabled" }
- 
多设置就是示例2,以此类推 { 选项: 值, 选项: 值, ... 选项: 值 }
- 
选项和值在上面都有自身需求添加即可 
命令的使用
比较复杂细学官方文档:
https://code.visualstudio.com/api
粗讲:
能快捷键调用的
- Shift + Alt + U:更新项目
- Shift + Alt + B:强制Java编译【不建议使用】
- Ctrl + Shift + V: 导入所有需要导入的类【学习Java新手别用】
自己动手,丰衣足食