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,以此類推
{ 選項: 值, 選項: 值, ... 選項: 值 } -
選項和值在上面都有自身需求添加即可
命令的使用
比較複雜細學官方文檔:
//code.visualstudio.com/api
粗講:
能快捷鍵調用的
Shift + Alt + U:更新項目Shift + Alt + B:強制Java編譯【不建議使用】Ctrl + Shift + V: 導入所有需要導入的類【學習Java新手別用】
自己動手,豐衣足食

