新聞中心
VS Code上的 Java 語言支持,可以說是多家大企業(yè)通力合作了。最早成熟的 Java 插件,是由 Red Hat 公司實(shí)現(xiàn)的,叫做 Language Support for Java by Red Hat。 它背后使用的技術(shù)則是 Java Language Server,也就是 Language Server Protocol 的 Java 實(shí)現(xiàn)。除了VS Code的這個(gè) Java 插件在使用以外,Eclipse Che 現(xiàn)在也在使用 Java Language Server。而說到 Java Language Server ,又不得不提它的底層一個(gè)非常重要的庫 Eclipse JDT (Eclipse Java development tools ),VS Code的項(xiàng)目領(lǐng)導(dǎo) Erich Gamma,在加入微軟之前,就是在 IBM 負(fù)責(zé) Eclipse JDT 這個(gè)項(xiàng)目的。

創(chuàng)新互聯(lián)公司專注于龍井網(wǎng)站建設(shè)服務(wù)及定制,我們擁有豐富的企業(yè)做網(wǎng)站經(jīng)驗(yàn)。 熱誠(chéng)為您提供龍井營(yíng)銷型網(wǎng)站建設(shè),龍井網(wǎng)站制作、龍井網(wǎng)頁設(shè)計(jì)、龍井網(wǎng)站官網(wǎng)定制、微信小程序服務(wù),打造龍井網(wǎng)絡(luò)公司原創(chuàng)品牌,更為您提供龍井網(wǎng)站排名全網(wǎng)營(yíng)銷落地服務(wù)。
繼續(xù)回到 Java 插件上。Language Support for Java by Red Hat 這個(gè)插件,能夠提供代碼跳轉(zhuǎn)、自動(dòng)補(bǔ)全、重構(gòu)等智能語言功能。不過,它并不支持 Java 代碼的調(diào)試。如果要對(duì) Java 代碼進(jìn)行調(diào)試,則需要安裝另一個(gè)插件 Debugger for Java ,這個(gè)插件則是由微軟 Visual Studio 中國(guó)團(tuán)隊(duì)開發(fā)和維護(hù)的。而現(xiàn)在 Red Hat 和 Visual Studio 中國(guó)團(tuán)隊(duì)正在一起合作,共同為 Java 用戶在VS Code上提供更好的編程體驗(yàn)。
安裝使用
為了保證你能有比較完整的 Java 開發(fā)體驗(yàn),你可以下載插件包 Java Extension Pack。
這個(gè)插件包,包含了四個(gè)插件:
- Language Support for Java by Red Hat,提供智能語言服務(wù),項(xiàng)目地址是https://github.com/redhat-developer/vscode-java
- Debugger for Java,提供調(diào)試功能,項(xiàng)目地址是 https://github.com/Microsoft/vscode-java-debug
- Java Test Runner,在VS Code中運(yùn)行和調(diào)試 JUint 測(cè)試,項(xiàng)目地址是 https://github.com/Microsoft/vscode-java-test
- Maven for Java,提供更豐富的 Maven 支持,https://github.com/Microsoft/vscode-maven
不過,要注意的是,要想這些插件能夠正常工作,你需要安裝好 JDK 。如果你的環(huán)境變量里設(shè)置好了 JDK_HOME 或者 JAVA_HOME,那么插件就可以正常啟動(dòng)了。而如果插件無法找到 JDK,你也可以通過在個(gè)人或者項(xiàng)目設(shè)置中添加 java.home 指定 JDK 的位置。
語言支持
在安裝完上面的插件后,你可以在VS Code中使用 Maven、Eclipse 和 Gradle 項(xiàng)目。上面我提到了 Java 語言服務(wù)的最底層是 Eclipse JDT,無論是代碼提示,還是重構(gòu)、代碼跳轉(zhuǎn)等,Eclipse 里能夠完成的,VS Code中都能有接近的體驗(yàn)。
調(diào)試
當(dāng)你打開一個(gè) Java 項(xiàng)目后,你可以點(diǎn)擊調(diào)試視圖里的齒輪按鈕,創(chuàng)建 launch.json 。選擇了 Java 這個(gè)環(huán)境后,Java 插件會(huì)為我們創(chuàng)建兩個(gè)調(diào)試的模板。
第一個(gè)模板,就是調(diào)試本地的項(xiàng)目,要注意的是,你需要填寫設(shè)置 mainClass,這個(gè)設(shè)置的值則是你想要調(diào)試的 Java Main Class,而且這個(gè)地址必須是這個(gè)類的完整地址,類似于 com.example.Main 。而第二個(gè)模板,則是將調(diào)試器 attach 到已經(jīng)在調(diào)試中的 Java 代碼,你則需要提供正在運(yùn)行的調(diào)試器的地址(hostName)和端口(port)。
Java 調(diào)試配置支持的屬性,可以參考官方文檔。不過,這里有三個(gè)功能值得特別提一下。
第一個(gè)功能是跟用戶輸入有關(guān)。VS Code內(nèi)置的調(diào)試面板,并不支持用戶輸入。也就是說,如果你寫的 Java 程序,依賴于用戶從命令行中輸入代碼,Java 程序會(huì)打開一個(gè)系統(tǒng)終端,然后你需要在這個(gè)系統(tǒng)終端中輸入內(nèi)容。而如果你希望使用VS Code的集成終端來進(jìn)行輸入的話,就可以使用調(diào)試配置屬性 “console: integratedTerminal” 。
第二個(gè)功能是Step filtering。它是什么意思呢? 當(dāng)你在使用跳轉(zhuǎn)入函數(shù)(Step in),或者繼續(xù)執(zhí)行函數(shù)(Step through)等方法時(shí),有的時(shí)候,你會(huì)跳入到 Java 語言本身的代碼中,或者進(jìn)入到某些第三方庫的代碼中。但是你可能只是要調(diào)試自己的代碼,那么你就可以通過 stepFilters 這個(gè)屬性,對(duì)類的名字進(jìn)行過濾,所有匹配了這個(gè)列表的類,在調(diào)試時(shí)都可以被直接跳過。你甚至還可以指定你是否要跳過構(gòu)造函數(shù)、靜態(tài)函數(shù)等等。
下面就是一段 stepFilters 屬性的例子。
"stepFilters": {
"classNameFilters": [
"java.*",
"javax.*",
"com.sun.*",
"sun.*",
"sunw.*",
"org.omg.*"
],
"skipSynthetics": false,
"skipStaticInitializers": false,
"skipConstructors": false
}JSON
第三個(gè)功能是Hot Code replacement,即“熱代碼替換”。相信對(duì)前端有經(jīng)驗(yàn)的朋友已經(jīng)比較熟悉這個(gè)功能了。這個(gè)功能的作用是,當(dāng)你在調(diào)試代碼的時(shí)候,如果發(fā)現(xiàn)代碼哪里寫錯(cuò)了,可以立即修改。然后調(diào)試器就會(huì)默默地在底層將整個(gè)代碼執(zhí)行切換到一個(gè)新的 JVM instance 上,而你無需重啟整個(gè)調(diào)試進(jìn)程,就能夠繼續(xù)調(diào)試最新的代碼了。
JUnit 測(cè)試
接下來,我們看看 Java 的插件對(duì) JUnit 測(cè)試的支持情況如何。當(dāng)你打開一個(gè) JUnit 測(cè)試時(shí),Java Test Runner 這個(gè)插件就會(huì)被激活了。此時(shí),在界面最左側(cè)活動(dòng)欄的最下面,多了一個(gè)按鈕,點(diǎn)擊這個(gè)按鈕,你就能看到一個(gè)測(cè)試視圖,這個(gè)視圖里展示的就是當(dāng)前項(xiàng)目中的所有測(cè)試。
在這個(gè)視圖中,你可以在測(cè)試項(xiàng)目上進(jìn)行右擊,調(diào)出上下文菜單,然后執(zhí)行單個(gè),或者多個(gè)測(cè)試。
與此同時(shí),在編輯器中,你可以看到每個(gè)測(cè)試的上方,都有 “Run Test” 和 “Debug Test” 等字樣。通過點(diǎn)擊它們,同樣可以執(zhí)行和調(diào)試測(cè)試。
另外,在上圖中,你還能夠看到一個(gè)問號(hào),它說明測(cè)試沒有被正確執(zhí)行。你可以點(diǎn)擊它,這之后,VS Code則會(huì)打開一個(gè)新的編輯器,詳細(xì)介紹這個(gè)測(cè)試相關(guān)的情況。
當(dāng)然,如果你覺得左側(cè)的測(cè)試視圖已經(jīng)足夠好用了,不希望在編輯器中再看到 “Run Test” 等字樣,那你也可以通過 “editor.codelens” 將其關(guān)閉。
問題和前瞻
雖然VS Code上的 Java 支持,無論是代碼積淀還是團(tuán)隊(duì)陣容,都是非常強(qiáng)大的,但是還是有一些不盡如人意的地方:
- 首先,就是配置還是相對(duì)繁瑣,在開發(fā) Java 項(xiàng)目時(shí),還是 IDE 那樣開箱即用更省力一些。
- 其次,支持還沒有完整,比如還不支持 ant ,對(duì) Android 支持也不夠好。
- 最后,也是我心目中比較重要的,性能相比較于其他重型的 IDE ,并沒有太大的優(yōu)勢(shì)。
新聞標(biāo)題:創(chuàng)新互聯(lián)vscode教程:vscode支持java
網(wǎng)頁網(wǎng)址:http://fisionsoft.com.cn/article/dppccdg.html


咨詢
建站咨詢
