vscode + gradle 建立 java 項目 - java language server沒法啓動

一、在系統上安裝一個版本的gradle,用`gradle init --type java-application`建立一個默認的java項目,假設項目目錄是hellojavajava

二、vscode寫java首先要安裝Java Extension Pack(下面簡稱JEP),這個擴展會自帶兩個依賴項安裝,一個是Debugger for java,還有一個的language support for java by red hat,這些是利用Eclipse的JDT實現的java語言支持windows

而後把hellojava文件夾添加到vscode的工做區,JEP會自動識別該gradle項目並經過JDT將該項目集成到vscode中,出現如下事件則說明正確識別了:app

2.一、在狀態欄會看到Starting Java Language Server...併成功走到100%,這個步驟JEP根據你的gradlew(windows下是gradle.bat)下載安裝了對應版本的gradle(僅用於該java項目,不是系統全局的)測試

2.二、hellojava中與build.gradle同目錄下出現了.project和.classpath文件(Eclipse的東西),說明JEP已經利用JDT關聯好你的gradle java項目了gradle

2.三、hellojava中與build.gradle同目錄下出現了bin文件夾,裏面是你src中java文件對應的class文件,說明vscode已經利用JEP下載的gradle幫你build好了該項目(是的,你不用手動去打gradle build命令,自動build),可是注意,這裏vscode的JEP利用gradle只會幫你生成class文件用於debug(你只須要編輯你的java文件並按F5進行debug便可),並不等價於gradle build命令,gradle build命令還會幫你作unit testing、打包jar等等,另外,你手動敲gradle build生成的東西都在build目錄下,而不是bin目錄下,bin目錄下的東西是vscode按F5調試時候找的class文件,而build目錄下的class文件是gradle run運行的,要注意區別ui

 

 

三、最近發現經過deb包安裝的vscode忽然沒法正確build和debug java項目了,出現如下症狀(不必定同時出現):spa

3.一、bin目錄中的class文件沒法與src中的java文件同步,修改了java文件,class文件貌似沒有被從新編譯debug

3.二、bin目錄中的class文件所有消失調試

3.三、F5啓動項目報錯,大意是:找不到主類code

3.四、「輸出」裏面發現JEP報錯,大意是沒法從gradle.4.x.bin.zip安裝gradle(說明#2.1中的步驟失敗了),同時,打開項目中java文件的時候,狀態欄有個大拇指朝下(鄙視的手勢),點擊後跳到「輸出」的報錯界面;這裏還有一種報錯方式就是告訴你沒法同步項目的狀態,其實也是表示JDT沒法同步你的gradle項目

 

四、我估計了一下,出現#3中描述的問題,估計是由於權限問題,JEP沒法成功安裝gradle並啓動Java Language Server,爲何這麼說,由於deb包安裝的時候是要輸入sudo的密碼的,安裝在/usr/share目錄下,而啓動vscode是沒有用sudo的

4.一、測試了一下,sudo啓動vscode,就不會出現#3中的問題了,可是帶來的問題就是不用sudo就無法用vscode了

4.二、那麼解決辦法就是把vscode安裝到/home目錄下,不用deb包安裝,直接下載tar.gz包解壓到/home目錄下,這樣就不存在權限問題了

 

備註:其實一開始我用deb包安裝的vscode寫gradle的java項目也是好好的,也沒出現上面#4所謂的「權限問題」,可是昨天不知道抽什麼風就忽然不能用了,折騰半天才按上面的步驟解決,真尼瑪扯蛋

相關文章
相關標籤/搜索