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_modules
or.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.updateSourceAttachment
Attach 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新手別用】
自己動手,豐衣足食